; ModuleID = '4da4b9l2jza648al'
source_filename = "4da4b9l2jza648al"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"core::fmt::Formatter" = type { [0 x i64], { i64, i64 }, [0 x i64], { i64, i64 }, [0 x i64], { {}*, [3 x i64]* }, [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [7 x i8] }
%"core::fmt::::Opaque" = type {}
%"core::fmt::Arguments" = type { [0 x i64], { [0 x { [0 x i8]*, i64 }]*, i64 }, [0 x i64], { i64*, i64 }, [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i64] }
%"core::marker::PhantomData<u8>" = type {}
%"core::alloc::AllocErr" = type {}
%"core::result::Result<core::ptr::non_null::NonNull<u8>, core::alloc::AllocErr>::Err" = type { [0 x i8], %"core::alloc::AllocErr", [0 x i8] }
%"alloc::alloc::Global" = type {}
%"core::result::Result<core::alloc::MemoryBlock, core::alloc::AllocErr>::Err" = type { [0 x i8], %"core::alloc::AllocErr", [0 x i8] }
%"core::panic::Location" = type { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }
%"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }

$asan.module_ctor = comdat any

$asan.module_dtor = comdat any

$"vtable.0$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc16$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc29$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc18$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"___asan_gen__anon_global$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc57$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc52$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"str.1$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc54$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc56$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc3$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc5$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"___asan_gen__anon_global.50$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc58$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc10$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc12$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"___asan_gen__anon_global.52$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc22$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc24$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"___asan_gen__anon_global.54$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc28$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"alloc30$03cd30da69406abeb2b6f62294d8e524" = comdat any

$"___asan_gen__anon_global.56$03cd30da69406abeb2b6f62294d8e524" = comdat any

@vtable.0 = internal constant { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] } { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17hea18d0ccc29f056eE, i64 8, i64 8, i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h5d4badd86b1e7272E", i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h5d4badd86b1e7272E", i32 (i8**)* @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h5cba647217a5244fE" }, [48 x i8] zeroinitializer }, comdat($"vtable.0$03cd30da69406abeb2b6f62294d8e524"), align 32, !dbg !0
@alloc16 = internal constant { <{ [12 x i8] }>, [52 x i8] } { <{ [12 x i8] }> <{ [12 x i8] c"test_local: " }>, [52 x i8] zeroinitializer }, comdat($"alloc16$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc29 = internal constant { <{ [1 x i8] }>, [63 x i8] } { <{ [1 x i8] }> <{ [1 x i8] c"\0A" }>, [63 x i8] zeroinitializer }, comdat($"alloc29$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc18 = internal constant { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] } { <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds ({ <{ [12 x i8] }>, [52 x i8] }, { <{ [12 x i8] }>, [52 x i8] }* @alloc16, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\0C\00\00\00\00\00\00\00", i8* getelementptr inbounds ({ <{ [1 x i8] }>, [63 x i8] }, { <{ [1 x i8] }>, [63 x i8] }* @alloc29, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, [32 x i8] zeroinitializer }, comdat($"alloc18$03cd30da69406abeb2b6f62294d8e524"), align 32
@___asan_gen__anon_global = internal constant { <{ i8*, [0 x i8] }>, [56 x i8] } { <{ i8*, [0 x i8] }> <{ i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc18 to i8*), [0 x i8] zeroinitializer }>, [56 x i8] zeroinitializer }, comdat($"___asan_gen__anon_global$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc57 = internal constant { <{ [11 x i8] }>, [53 x i8] } { <{ [11 x i8] }> <{ [11 x i8] c"src/main.rs" }>, [53 x i8] zeroinitializer }, comdat($"alloc57$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc52 = internal constant { <{ i8*, [16 x i8] }>, [40 x i8] } { <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds ({ <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc57, i32 0, i32 0, i32 0, i32 0), [16 x i8] c"\0B\00\00\00\00\00\00\00\06\00\00\00\22\00\00\00" }>, [40 x i8] zeroinitializer }, comdat($"alloc52$03cd30da69406abeb2b6f62294d8e524"), align 32
@str.1 = internal constant { [28 x i8], [36 x i8] } { [28 x i8] c"attempt to add with overflow", [36 x i8] zeroinitializer }, comdat($"str.1$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc54 = internal constant { <{ i8*, [16 x i8] }>, [40 x i8] } { <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds ({ <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc57, i32 0, i32 0, i32 0, i32 0), [16 x i8] c"\0B\00\00\00\00\00\00\00\0B\00\00\00\05\00\00\00" }>, [40 x i8] zeroinitializer }, comdat($"alloc54$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc56 = internal constant { <{ i8*, [16 x i8] }>, [40 x i8] } { <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds ({ <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc57, i32 0, i32 0, i32 0, i32 0), [16 x i8] c"\0B\00\00\00\00\00\00\00\0C\00\00\00\05\00\00\00" }>, [40 x i8] zeroinitializer }, comdat($"alloc56$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc3 = internal constant { <{ [12 x i8] }>, [52 x i8] } { <{ [12 x i8] }> <{ [12 x i8] c"test_array: " }>, [52 x i8] zeroinitializer }, comdat($"alloc3$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc5 = internal constant { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] } { <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds ({ <{ [12 x i8] }>, [52 x i8] }, { <{ [12 x i8] }>, [52 x i8] }* @alloc3, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\0C\00\00\00\00\00\00\00", i8* getelementptr inbounds ({ <{ [1 x i8] }>, [63 x i8] }, { <{ [1 x i8] }>, [63 x i8] }* @alloc29, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, [32 x i8] zeroinitializer }, comdat($"alloc5$03cd30da69406abeb2b6f62294d8e524"), align 32
@___asan_gen__anon_global.50 = internal constant { <{ i8*, [0 x i8] }>, [56 x i8] } { <{ i8*, [0 x i8] }> <{ i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc5 to i8*), [0 x i8] zeroinitializer }>, [56 x i8] zeroinitializer }, comdat($"___asan_gen__anon_global.50$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc58 = internal constant { <{ i8*, [16 x i8] }>, [40 x i8] } { <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds ({ <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc57, i32 0, i32 0, i32 0, i32 0), [16 x i8] c"\0B\00\00\00\00\00\00\00\0D\00\00\00\22\00\00\00" }>, [40 x i8] zeroinitializer }, comdat($"alloc58$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc10 = internal constant { <{ [10 x i8] }>, [54 x i8] } { <{ [10 x i8] }> <{ [10 x i8] c"test_box: " }>, [54 x i8] zeroinitializer }, comdat($"alloc10$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc12 = internal constant { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] } { <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds ({ <{ [10 x i8] }>, [54 x i8] }, { <{ [10 x i8] }>, [54 x i8] }* @alloc10, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\0A\00\00\00\00\00\00\00", i8* getelementptr inbounds ({ <{ [1 x i8] }>, [63 x i8] }, { <{ [1 x i8] }>, [63 x i8] }* @alloc29, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, [32 x i8] zeroinitializer }, comdat($"alloc12$03cd30da69406abeb2b6f62294d8e524"), align 32
@___asan_gen__anon_global.52 = internal constant { <{ i8*, [0 x i8] }>, [56 x i8] } { <{ i8*, [0 x i8] }> <{ i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc12 to i8*), [0 x i8] zeroinitializer }>, [56 x i8] zeroinitializer }, comdat($"___asan_gen__anon_global.52$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc22 = internal constant { <{ [17 x i8] }>, [47 x i8] } { <{ [17 x i8] }> <{ [17 x i8] c"test_reference1: " }>, [47 x i8] zeroinitializer }, comdat($"alloc22$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc24 = internal constant { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] } { <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds ({ <{ [17 x i8] }>, [47 x i8] }, { <{ [17 x i8] }>, [47 x i8] }* @alloc22, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\11\00\00\00\00\00\00\00", i8* getelementptr inbounds ({ <{ [1 x i8] }>, [63 x i8] }, { <{ [1 x i8] }>, [63 x i8] }* @alloc29, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, [32 x i8] zeroinitializer }, comdat($"alloc24$03cd30da69406abeb2b6f62294d8e524"), align 32
@___asan_gen__anon_global.54 = internal constant { <{ i8*, [0 x i8] }>, [56 x i8] } { <{ i8*, [0 x i8] }> <{ i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc24 to i8*), [0 x i8] zeroinitializer }>, [56 x i8] zeroinitializer }, comdat($"___asan_gen__anon_global.54$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc28 = internal constant { <{ [17 x i8] }>, [47 x i8] } { <{ [17 x i8] }> <{ [17 x i8] c"test_reference2: " }>, [47 x i8] zeroinitializer }, comdat($"alloc28$03cd30da69406abeb2b6f62294d8e524"), align 32
@alloc30 = internal constant { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] } { <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds ({ <{ [17 x i8] }>, [47 x i8] }, { <{ [17 x i8] }>, [47 x i8] }* @alloc28, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\11\00\00\00\00\00\00\00", i8* getelementptr inbounds ({ <{ [1 x i8] }>, [63 x i8] }, { <{ [1 x i8] }>, [63 x i8] }* @alloc29, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, [32 x i8] zeroinitializer }, comdat($"alloc30$03cd30da69406abeb2b6f62294d8e524"), align 32
@___asan_gen__anon_global.56 = internal constant { <{ i8*, [0 x i8] }>, [56 x i8] } { <{ i8*, [0 x i8] }> <{ i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc30 to i8*), [0 x i8] zeroinitializer }>, [56 x i8] zeroinitializer }, comdat($"___asan_gen__anon_global.56$03cd30da69406abeb2b6f62294d8e524"), align 32
@__rustc_debug_gdb_scripts_section__ = linkonce_odr unnamed_addr constant [34 x i8] c"\01gdb_load_rust_pretty_printers.py\00", section ".debug_gdb_scripts", align 1
@__asan_option_detect_stack_use_after_return = external global i32
@___asan_gen_ = private unnamed_addr constant [15 x i8] c"1 32 8 5 _7:67\00", align 1
@___asan_gen_.1 = private unnamed_addr constant [35 x i8] c"3 32 8 4 :290 64 8 4 :290 96 16 0 \00", align 1
@___asan_gen_.2 = private unnamed_addr constant [67 x i8] c"3 32 16 14 args.dbg.spill 64 16 16 pieces.dbg.spill 96 16 6 _4:328\00", align 1
@___asan_gen_.3 = private unnamed_addr constant [25 x i8] c"2 32 16 4 :232 64 8 2 _1\00", align 1
@___asan_gen_.4 = private unnamed_addr constant [11 x i8] c"1 32 16 0 \00", align 1
@___asan_gen_.5 = private unnamed_addr constant [10 x i8] c"1 32 8 0 \00", align 1
@___asan_gen_.6 = private unnamed_addr constant [10 x i8] c"1 32 8 0 \00", align 1
@___asan_gen_.7 = private unnamed_addr constant [11 x i8] c"1 32 16 0 \00", align 1
@___asan_gen_.8 = private unnamed_addr constant [31 x i8] c"3 32 16 0  64 8 0  96 8 4 self\00", align 1
@___asan_gen_.9 = private unnamed_addr constant [17 x i8] c"1 32 16 6 layout\00", align 1
@___asan_gen_.10 = private unnamed_addr constant [69 x i8] c"3 32 16 16 memory.dbg.spill 64 16 16 layout.dbg.spill 96 16 6 _6:268\00", align 1
@___asan_gen_.11 = private unnamed_addr constant [17 x i8] c"1 32 16 6 layout\00", align 1
@___asan_gen_.12 = private unnamed_addr constant [17 x i8] c"1 32 16 6 layout\00", align 1
@___asan_gen_.13 = private unnamed_addr constant [39 x i8] c"2 32 16 16 layout.dbg.spill 64 8 3 ptr\00", align 1
@___asan_gen_.14 = private unnamed_addr constant [16 x i8] c"1 32 8 6 _9:553\00", align 1
@___asan_gen_.15 = private unnamed_addr constant [74 x i8] c"5 32 16 7 _26:178 64 8 7 _16:177 96 16 6 _8:171 128 16 0  160 16 6 layout\00", align 1
@___asan_gen_.16 = private unnamed_addr constant [17 x i8] c"1 32 16 6 layout\00", align 1
@___asan_gen_.17 = private unnamed_addr constant [14 x i8] c"1 32 1 4 self\00", align 1
@___asan_gen_.18 = private unnamed_addr constant [11 x i8] c"1 32 16 0 \00", align 1
@___asan_gen_.19 = private unnamed_addr constant [42 x i8] c"3 32 4 5 _14:6 48 16 5 _11:6 80 48 4 _4:6\00", align 1
@___asan_gen_.20 = private unnamed_addr constant [45 x i8] c"3 32 16 6 _18:13 64 48 6 _11:13 144 4 4 xs:9\00", align 1
@___asan_gen_.21 = private unnamed_addr constant [75 x i8] c"5 32 16 3 :16 64 16 6 _19:26 96 48 6 _12:26 176 8 6 six:18 208 8 7 five:17\00", align 1
@___asan_gen_.22 = private unnamed_addr constant [59 x i8] c"4 32 16 3 :29 64 16 6 _10:32 96 48 5 _3:32 176 8 7 five:30\00", align 1
@___asan_gen_.23 = private unnamed_addr constant [31 x i8] c"2 32 16 6 _10:35 64 48 5 _3:35\00", align 1
@___asan_gen_.24 = private unnamed_addr constant [28 x i8] c"2 32 16 3 :38 64 8 6 six:43\00", align 1
@___asan_gen_.25 = private constant [17 x i8] c"4da4b9l2jza648al\00", align 1
@___asan_gen_.26 = private unnamed_addr constant [9 x i8] c"vtable.0\00", align 1
@___asan_gen_.27 = private unnamed_addr constant [8 x i8] c"alloc16\00", align 1
@___asan_gen_.28 = private unnamed_addr constant [8 x i8] c"alloc29\00", align 1
@___asan_gen_.29 = private unnamed_addr constant [8 x i8] c"alloc18\00", align 1
@___asan_gen_.30 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@___asan_gen_.31 = private unnamed_addr constant [8 x i8] c"alloc57\00", align 1
@___asan_gen_.32 = private unnamed_addr constant [8 x i8] c"alloc52\00", align 1
@___asan_gen_.33 = private unnamed_addr constant [6 x i8] c"str.1\00", align 1
@___asan_gen_.34 = private unnamed_addr constant [8 x i8] c"alloc54\00", align 1
@___asan_gen_.35 = private unnamed_addr constant [8 x i8] c"alloc56\00", align 1
@___asan_gen_.36 = private unnamed_addr constant [7 x i8] c"alloc3\00", align 1
@___asan_gen_.37 = private unnamed_addr constant [7 x i8] c"alloc5\00", align 1
@___asan_gen_.38 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@___asan_gen_.39 = private unnamed_addr constant [8 x i8] c"alloc58\00", align 1
@___asan_gen_.40 = private unnamed_addr constant [8 x i8] c"alloc10\00", align 1
@___asan_gen_.41 = private unnamed_addr constant [8 x i8] c"alloc12\00", align 1
@___asan_gen_.42 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@___asan_gen_.43 = private unnamed_addr constant [8 x i8] c"alloc22\00", align 1
@___asan_gen_.44 = private unnamed_addr constant [8 x i8] c"alloc24\00", align 1
@___asan_gen_.45 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@___asan_gen_.46 = private unnamed_addr constant [8 x i8] c"alloc28\00", align 1
@___asan_gen_.47 = private unnamed_addr constant [8 x i8] c"alloc30\00", align 1
@___asan_gen_.48 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@__asan_global_vtable.0 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @0 to i64), i64 48, i64 96, i64 ptrtoint ([9 x i8]* @___asan_gen_.26 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"vtable.0$03cd30da69406abeb2b6f62294d8e524"), !associated !14
@__asan_global_alloc16 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [12 x i8] }>, [52 x i8] }* @1 to i64), i64 12, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.27 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc16$03cd30da69406abeb2b6f62294d8e524"), !associated !15
@__asan_global_alloc29 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [1 x i8] }>, [63 x i8] }* @2 to i64), i64 1, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.28 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc29$03cd30da69406abeb2b6f62294d8e524"), !associated !16
@__asan_global_alloc18 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @3 to i64), i64 32, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.29 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc18$03cd30da69406abeb2b6f62294d8e524"), !associated !17
@__asan_global_ = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @4 to i64), i64 8, i64 64, i64 ptrtoint ([1 x i8]* @___asan_gen_.30 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"___asan_gen__anon_global$03cd30da69406abeb2b6f62294d8e524"), !associated !18
@__asan_global_alloc57 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [11 x i8] }>, [53 x i8] }* @5 to i64), i64 11, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.31 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc57$03cd30da69406abeb2b6f62294d8e524"), !associated !19
@__asan_global_alloc52 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @6 to i64), i64 24, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.32 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc52$03cd30da69406abeb2b6f62294d8e524"), !associated !20
@__asan_global_str.1 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ [28 x i8], [36 x i8] }* @7 to i64), i64 28, i64 64, i64 ptrtoint ([6 x i8]* @___asan_gen_.33 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"str.1$03cd30da69406abeb2b6f62294d8e524"), !associated !21
@__asan_global_alloc54 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @8 to i64), i64 24, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.34 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc54$03cd30da69406abeb2b6f62294d8e524"), !associated !22
@__asan_global_alloc56 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @9 to i64), i64 24, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.35 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc56$03cd30da69406abeb2b6f62294d8e524"), !associated !23
@__asan_global_alloc3 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [12 x i8] }>, [52 x i8] }* @10 to i64), i64 12, i64 64, i64 ptrtoint ([7 x i8]* @___asan_gen_.36 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc3$03cd30da69406abeb2b6f62294d8e524"), !associated !24
@__asan_global_alloc5 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @11 to i64), i64 32, i64 64, i64 ptrtoint ([7 x i8]* @___asan_gen_.37 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc5$03cd30da69406abeb2b6f62294d8e524"), !associated !25
@__asan_global_.49 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @12 to i64), i64 8, i64 64, i64 ptrtoint ([1 x i8]* @___asan_gen_.38 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"___asan_gen__anon_global.50$03cd30da69406abeb2b6f62294d8e524"), !associated !26
@__asan_global_alloc58 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @13 to i64), i64 24, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.39 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc58$03cd30da69406abeb2b6f62294d8e524"), !associated !27
@__asan_global_alloc10 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [10 x i8] }>, [54 x i8] }* @14 to i64), i64 10, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.40 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc10$03cd30da69406abeb2b6f62294d8e524"), !associated !28
@__asan_global_alloc12 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @15 to i64), i64 32, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.41 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc12$03cd30da69406abeb2b6f62294d8e524"), !associated !29
@__asan_global_.51 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @16 to i64), i64 8, i64 64, i64 ptrtoint ([1 x i8]* @___asan_gen_.42 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"___asan_gen__anon_global.52$03cd30da69406abeb2b6f62294d8e524"), !associated !30
@__asan_global_alloc22 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [17 x i8] }>, [47 x i8] }* @17 to i64), i64 17, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.43 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc22$03cd30da69406abeb2b6f62294d8e524"), !associated !31
@__asan_global_alloc24 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @18 to i64), i64 32, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.44 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc24$03cd30da69406abeb2b6f62294d8e524"), !associated !32
@__asan_global_.53 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @19 to i64), i64 8, i64 64, i64 ptrtoint ([1 x i8]* @___asan_gen_.45 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"___asan_gen__anon_global.54$03cd30da69406abeb2b6f62294d8e524"), !associated !33
@__asan_global_alloc28 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [17 x i8] }>, [47 x i8] }* @20 to i64), i64 17, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.46 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc28$03cd30da69406abeb2b6f62294d8e524"), !associated !34
@__asan_global_alloc30 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @21 to i64), i64 32, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.47 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc30$03cd30da69406abeb2b6f62294d8e524"), !associated !35
@__asan_global_.55 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @22 to i64), i64 8, i64 64, i64 ptrtoint ([1 x i8]* @___asan_gen_.48 to i64), i64 ptrtoint ([17 x i8]* @___asan_gen_.25 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"___asan_gen__anon_global.56$03cd30da69406abeb2b6f62294d8e524"), !associated !36
@llvm.compiler.used = appending global [41 x i8*] [i8* bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to i8*), i8* getelementptr inbounds ({ <{ [12 x i8] }>, [52 x i8] }, { <{ [12 x i8] }>, [52 x i8] }* @alloc16, i32 0, i32 0, i32 0, i32 0), i8* getelementptr inbounds ({ <{ [1 x i8] }>, [63 x i8] }, { <{ [1 x i8] }>, [63 x i8] }* @alloc29, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc18 to i8*), i8* getelementptr inbounds ({ <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc57, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc52 to i8*), i8* getelementptr inbounds ({ [28 x i8], [36 x i8] }, { [28 x i8], [36 x i8] }* @str.1, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc54 to i8*), i8* bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc56 to i8*), i8* getelementptr inbounds ({ <{ [12 x i8] }>, [52 x i8] }, { <{ [12 x i8] }>, [52 x i8] }* @alloc3, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc5 to i8*), i8* bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc58 to i8*), i8* getelementptr inbounds ({ <{ [10 x i8] }>, [54 x i8] }, { <{ [10 x i8] }>, [54 x i8] }* @alloc10, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc12 to i8*), i8* getelementptr inbounds ({ <{ [17 x i8] }>, [47 x i8] }, { <{ [17 x i8] }>, [47 x i8] }* @alloc22, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc24 to i8*), i8* getelementptr inbounds ({ <{ [17 x i8] }>, [47 x i8] }, { <{ [17 x i8] }>, [47 x i8] }* @alloc28, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc30 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_vtable.0 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc16 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc29 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc18 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_ to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc57 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc52 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_str.1 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc54 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc56 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc3 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc5 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_.49 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc58 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc10 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc12 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_.51 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc22 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc24 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_.53 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc28 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc30 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_.55 to i8*)], section "llvm.metadata"
@___asan_globals_registered = common hidden global i64 0
@__start_asan_globals = extern_weak hidden global i64
@__stop_asan_globals = extern_weak hidden global i64
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* bitcast (void ()* @asan.module_ctor to i8*) }]
@llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_dtor, i8* bitcast (void ()* @asan.module_dtor to i8*) }]

@0 = private alias { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }, { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0
@1 = private alias { <{ [12 x i8] }>, [52 x i8] }, { <{ [12 x i8] }>, [52 x i8] }* @alloc16
@2 = private alias { <{ [1 x i8] }>, [63 x i8] }, { <{ [1 x i8] }>, [63 x i8] }* @alloc29
@3 = private alias { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }, { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc18
@4 = private alias { <{ i8*, [0 x i8] }>, [56 x i8] }, { <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global
@5 = private alias { <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc57
@6 = private alias { <{ i8*, [16 x i8] }>, [40 x i8] }, { <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc52
@7 = private alias { [28 x i8], [36 x i8] }, { [28 x i8], [36 x i8] }* @str.1
@8 = private alias { <{ i8*, [16 x i8] }>, [40 x i8] }, { <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc54
@9 = private alias { <{ i8*, [16 x i8] }>, [40 x i8] }, { <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc56
@10 = private alias { <{ [12 x i8] }>, [52 x i8] }, { <{ [12 x i8] }>, [52 x i8] }* @alloc3
@11 = private alias { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }, { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc5
@12 = private alias { <{ i8*, [0 x i8] }>, [56 x i8] }, { <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.50
@13 = private alias { <{ i8*, [16 x i8] }>, [40 x i8] }, { <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc58
@14 = private alias { <{ [10 x i8] }>, [54 x i8] }, { <{ [10 x i8] }>, [54 x i8] }* @alloc10
@15 = private alias { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }, { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc12
@16 = private alias { <{ i8*, [0 x i8] }>, [56 x i8] }, { <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.52
@17 = private alias { <{ [17 x i8] }>, [47 x i8] }, { <{ [17 x i8] }>, [47 x i8] }* @alloc22
@18 = private alias { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }, { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc24
@19 = private alias { <{ i8*, [0 x i8] }>, [56 x i8] }, { <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.54
@20 = private alias { <{ [17 x i8] }>, [47 x i8] }, { <{ [17 x i8] }>, [47 x i8] }* @alloc28
@21 = private alias { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }, { <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc30
@22 = private alias { <{ i8*, [0 x i8] }>, [56 x i8] }, { <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.56

; <core::ptr::non_null::NonNull<T> as core::convert::From<core::ptr::unique::Unique<T>>>::from
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal nonnull i8* @"_ZN119_$LT$core..ptr..non_null..NonNull$LT$T$GT$$u20$as$u20$core..convert..From$LT$core..ptr..unique..Unique$LT$T$GT$$GT$$GT$4from17hebb4f7d1d876b96dE"(i8* nonnull %unique) unnamed_addr #0 !dbg !66 {
start:
  %unique.dbg.spill = alloca i8*, align 8
  store i8* %unique, i8** %unique.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %unique.dbg.spill, metadata !87, metadata !DIExpression()), !dbg !88
; call core::ptr::unique::Unique<T>::as_ptr
  %_2 = call i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17hdcfa3758c305564cE"(i8* nonnull %unique), !dbg !89
  br label %bb1, !dbg !89

bb1:                                              ; preds = %start
; call core::ptr::non_null::NonNull<T>::new_unchecked
  %0 = call nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h403d6d098f19e6f5E"(i8* %_2), !dbg !90
  br label %bb2, !dbg !90

bb2:                                              ; preds = %bb1
  ret i8* %0, !dbg !91
}

; std::rt::lang_start
; Function Attrs: nonlazybind sanitize_address uwtable
define hidden i64 @_ZN3std2rt10lang_start17hfe0ca30c48e1a8eaE(void ()* nonnull %main, i64 %argc, i8** %argv) unnamed_addr #1 !dbg !92 {
start:
  %argv.dbg.spill = alloca i8**, align 8
  %argc.dbg.spill = alloca i64, align 8
  %main.dbg.spill = alloca void ()*, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 64, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to i8**
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([15 x i8]* @___asan_gen_ to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint (i64 (void ()*, i64, i8**)* @_ZN3std2rt10lang_start17hfe0ca30c48e1a8eaE to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -868082052615769615, i64* %21, align 1
  store void ()* %main, void ()** %main.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata void ()** %main.dbg.spill, metadata !99, metadata !DIExpression()), !dbg !105
  store i64 %argc, i64* %argc.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %argc.dbg.spill, metadata !100, metadata !DIExpression()), !dbg !106
  store i8** %argv, i8*** %argv.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8*** %argv.dbg.spill, metadata !101, metadata !DIExpression()), !dbg !107
  %22 = bitcast i8** %12 to i8*, !dbg !108
  %23 = add i64 %19, 4, !dbg !108
  %24 = inttoptr i64 %23 to i8*, !dbg !108
  store i8 0, i8* %24, align 1, !dbg !108
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %22), !dbg !108
  %25 = bitcast i8** %12 to void ()**, !dbg !108
  %26 = ptrtoint void ()** %25 to i64, !dbg !108
  %27 = lshr i64 %26, 3, !dbg !108
  %28 = add i64 %27, 2147450880, !dbg !108
  %29 = inttoptr i64 %28 to i8*, !dbg !108
  %30 = load i8, i8* %29, !dbg !108
  %31 = icmp ne i8 %30, 0, !dbg !108
  br i1 %31, label %32, label %33, !dbg !108

32:                                               ; preds = %9
  call void @__asan_report_store8(i64 %26), !dbg !108
  call void asm sideeffect "", ""(), !dbg !108
  unreachable, !dbg !108

33:                                               ; preds = %9
  store void ()* %main, void ()** %25, align 8, !dbg !108
  %_4.0 = bitcast i8** %12 to {}*, !dbg !109
; call std::rt::lang_start_internal
  %34 = call i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1 %_4.0, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to [3 x i64]*), i64 %argc, i8** %argv), !dbg !110
  br label %bb1, !dbg !110

bb1:                                              ; preds = %33
  %35 = bitcast i8** %12 to i8*, !dbg !111
  %36 = add i64 %19, 4, !dbg !111
  %37 = inttoptr i64 %36 to i8*, !dbg !111
  store i8 -8, i8* %37, align 1, !dbg !111
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %35), !dbg !111
  store i64 1172321806, i64* %13, !dbg !112
  %38 = icmp ne i64 %5, 0, !dbg !112
  br i1 %38, label %39, label %46, !dbg !112

39:                                               ; preds = %bb1
  %40 = add i64 %19, 0, !dbg !112
  %41 = inttoptr i64 %40 to i64*, !dbg !112
  store i64 -723401728380766731, i64* %41, align 1, !dbg !112
  %42 = add i64 %5, 56, !dbg !112
  %43 = inttoptr i64 %42 to i64*, !dbg !112
  %44 = load i64, i64* %43, !dbg !112
  %45 = inttoptr i64 %44 to i8*, !dbg !112
  store i8 0, i8* %45, !dbg !112
  br label %49, !dbg !112

46:                                               ; preds = %bb1
  %47 = add i64 %19, 0, !dbg !112
  %48 = inttoptr i64 %47 to i64*, !dbg !112
  store i64 0, i64* %48, align 1, !dbg !112
  br label %49, !dbg !112

49:                                               ; preds = %46, %39
  ret i64 %34, !dbg !112
}

; std::rt::lang_start::{{closure}}
; Function Attrs: nonlazybind sanitize_address uwtable
define internal i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h5d4badd86b1e7272E"(i8** noalias readonly align 8 dereferenceable(8) %_1) unnamed_addr #1 !dbg !113 {
start:
  %_1.dbg.spill = alloca i8**, align 8
  store i8** %_1, i8*** %_1.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8*** %_1.dbg.spill, metadata !119, metadata !DIExpression(DW_OP_deref)), !dbg !120
  %0 = bitcast i8** %_1 to void ()**, !dbg !121
  %1 = ptrtoint void ()** %0 to i64, !dbg !121
  %2 = lshr i64 %1, 3, !dbg !121
  %3 = add i64 %2, 2147450880, !dbg !121
  %4 = inttoptr i64 %3 to i8*, !dbg !121
  %5 = load i8, i8* %4, !dbg !121
  %6 = icmp ne i8 %5, 0, !dbg !121
  br i1 %6, label %7, label %8, !dbg !121

7:                                                ; preds = %start
  call void @__asan_report_load8(i64 %1), !dbg !121
  call void asm sideeffect "", ""(), !dbg !121
  unreachable, !dbg !121

8:                                                ; preds = %start
  %_3 = load void ()*, void ()** %0, align 8, !dbg !121, !nonnull !4
  call void %_3(), !dbg !121
  br label %bb1, !dbg !121

bb1:                                              ; preds = %8
; call <() as std::process::Termination>::report
  %9 = call i32 @"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hee7847427e568887E"(), !dbg !121
  br label %bb2, !dbg !121

bb2:                                              ; preds = %bb1
  ret i32 %9, !dbg !122
}

; std::sys::unix::process::process_common::ExitCode::as_i32
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i32 @_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217hb308a870ec7ca366E(i8* noalias readonly align 1 dereferenceable(1) %self) unnamed_addr #0 !dbg !123 {
start:
  %self.dbg.spill = alloca i8*, align 8
  store i8* %self, i8** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !136, metadata !DIExpression()), !dbg !137
  %0 = ptrtoint i8* %self to i64, !dbg !138
  %1 = lshr i64 %0, 3, !dbg !138
  %2 = add i64 %1, 2147450880, !dbg !138
  %3 = inttoptr i64 %2 to i8*, !dbg !138
  %4 = load i8, i8* %3, !dbg !138
  %5 = icmp ne i8 %4, 0, !dbg !138
  br i1 %5, label %6, label %11, !dbg !138, !prof !139

6:                                                ; preds = %start
  %7 = and i64 %0, 7, !dbg !138
  %8 = trunc i64 %7 to i8, !dbg !138
  %9 = icmp sge i8 %8, %4, !dbg !138
  br i1 %9, label %10, label %11, !dbg !138

10:                                               ; preds = %6
  call void @__asan_report_load1(i64 %0), !dbg !138
  call void asm sideeffect "", ""()
  unreachable

11:                                               ; preds = %6, %start
  %_2 = load i8, i8* %self, align 1, !dbg !138
  %12 = zext i8 %_2 to i32, !dbg !138
  ret i32 %12, !dbg !140
}

; core::fmt::ArgumentV1::new
; Function Attrs: nonlazybind sanitize_address uwtable
define internal { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E(i32* noalias readonly align 4 dereferenceable(4) %x, i1 (i32*, %"core::fmt::Formatter"*)* nonnull %f) unnamed_addr #1 !dbg !141 {
start:
  %f.dbg.spill = alloca i1 (i32*, %"core::fmt::Formatter"*)*, align 8
  %x.dbg.spill = alloca i32*, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_1(i64 128)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 128, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to %"core::fmt::::Opaque"**
  %13 = add i64 %10, 64
  %14 = inttoptr i64 %13 to i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)**
  %15 = add i64 %10, 96
  %16 = inttoptr i64 %15 to { i8*, i8* }*
  %17 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %17
  %18 = add i64 %10, 8
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint ([35 x i8]* @___asan_gen_.1 to i64), i64* %19
  %20 = add i64 %10, 16
  %21 = inttoptr i64 %20 to i64*
  store i64 ptrtoint ({ i8*, i8* } (i32*, i1 (i32*, %"core::fmt::Formatter"*)*)* @_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E to i64), i64* %21
  %22 = lshr i64 %10, 3
  %23 = add i64 %22, 2147450880
  %24 = add i64 %23, 0
  %25 = inttoptr i64 %24 to i64*
  store i64 -940422221142035983, i64* %25, align 1
  %26 = add i64 %23, 8
  %27 = inttoptr i64 %26 to i64*
  store i64 -868350299076365576, i64* %27, align 1
  store i32* %x, i32** %x.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32** %x.dbg.spill, metadata !195, metadata !DIExpression()), !dbg !199
  store i1 (i32*, %"core::fmt::Formatter"*)* %f, i1 (i32*, %"core::fmt::Formatter"*)** %f.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i1 (i32*, %"core::fmt::Formatter"*)** %f.dbg.spill, metadata !196, metadata !DIExpression()), !dbg !200
  %28 = bitcast i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %14 to i8*, !dbg !201
  %29 = add i64 %23, 8, !dbg !201
  %30 = inttoptr i64 %29 to i8*, !dbg !201
  store i8 0, i8* %30, align 1, !dbg !201
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %28), !dbg !201
  %31 = bitcast i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %14 to i1 (i32*, %"core::fmt::Formatter"*)**, !dbg !201
  %32 = ptrtoint i1 (i32*, %"core::fmt::Formatter"*)** %31 to i64, !dbg !201
  %33 = lshr i64 %32, 3, !dbg !201
  %34 = add i64 %33, 2147450880, !dbg !201
  %35 = inttoptr i64 %34 to i8*, !dbg !201
  %36 = load i8, i8* %35, !dbg !201
  %37 = icmp ne i8 %36, 0, !dbg !201
  br i1 %37, label %38, label %39, !dbg !201

38:                                               ; preds = %9
  call void @__asan_report_store8(i64 %32), !dbg !201
  call void asm sideeffect "", ""(), !dbg !201
  unreachable, !dbg !201

39:                                               ; preds = %9
  store i1 (i32*, %"core::fmt::Formatter"*)* %f, i1 (i32*, %"core::fmt::Formatter"*)** %31, align 8, !dbg !201
  %40 = ptrtoint i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %14 to i64, !dbg !201
  %41 = lshr i64 %40, 3, !dbg !201
  %42 = add i64 %41, 2147450880, !dbg !201
  %43 = inttoptr i64 %42 to i8*, !dbg !201
  %44 = load i8, i8* %43, !dbg !201
  %45 = icmp ne i8 %44, 0, !dbg !201
  br i1 %45, label %46, label %47, !dbg !201

46:                                               ; preds = %39
  call void @__asan_report_load8(i64 %40), !dbg !201
  call void asm sideeffect "", ""(), !dbg !201
  unreachable, !dbg !201

47:                                               ; preds = %39
  %_3 = load i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)*, i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %14, align 8, !dbg !201, !nonnull !4
  %48 = bitcast i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %14 to i8*, !dbg !201
  %49 = add i64 %23, 8, !dbg !201
  %50 = inttoptr i64 %49 to i8*, !dbg !201
  store i8 -8, i8* %50, align 1, !dbg !201
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %48), !dbg !201
  br label %bb1, !dbg !201

bb1:                                              ; preds = %47
  %51 = bitcast %"core::fmt::::Opaque"** %12 to i8*, !dbg !202
  %52 = add i64 %23, 4, !dbg !202
  %53 = inttoptr i64 %52 to i8*, !dbg !202
  store i8 0, i8* %53, align 1, !dbg !202
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %51), !dbg !202
  %54 = bitcast %"core::fmt::::Opaque"** %12 to i32**, !dbg !202
  %55 = ptrtoint i32** %54 to i64, !dbg !202
  %56 = lshr i64 %55, 3, !dbg !202
  %57 = add i64 %56, 2147450880, !dbg !202
  %58 = inttoptr i64 %57 to i8*, !dbg !202
  %59 = load i8, i8* %58, !dbg !202
  %60 = icmp ne i8 %59, 0, !dbg !202
  br i1 %60, label %61, label %62, !dbg !202

61:                                               ; preds = %bb1
  call void @__asan_report_store8(i64 %55), !dbg !202
  call void asm sideeffect "", ""(), !dbg !202
  unreachable, !dbg !202

62:                                               ; preds = %bb1
  store i32* %x, i32** %54, align 8, !dbg !202
  %63 = ptrtoint %"core::fmt::::Opaque"** %12 to i64, !dbg !202
  %64 = lshr i64 %63, 3, !dbg !202
  %65 = add i64 %64, 2147450880, !dbg !202
  %66 = inttoptr i64 %65 to i8*, !dbg !202
  %67 = load i8, i8* %66, !dbg !202
  %68 = icmp ne i8 %67, 0, !dbg !202
  br i1 %68, label %69, label %70, !dbg !202

69:                                               ; preds = %62
  call void @__asan_report_load8(i64 %63), !dbg !202
  call void asm sideeffect "", ""(), !dbg !202
  unreachable, !dbg !202

70:                                               ; preds = %62
  %_5 = load %"core::fmt::::Opaque"*, %"core::fmt::::Opaque"** %12, align 8, !dbg !202, !nonnull !4
  %71 = bitcast %"core::fmt::::Opaque"** %12 to i8*, !dbg !202
  %72 = add i64 %23, 4, !dbg !202
  %73 = inttoptr i64 %72 to i8*, !dbg !202
  store i8 -8, i8* %73, align 1, !dbg !202
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %71), !dbg !202
  br label %bb2, !dbg !202

bb2:                                              ; preds = %70
  %74 = bitcast { i8*, i8* }* %16 to %"core::fmt::::Opaque"**, !dbg !203
  %75 = ptrtoint %"core::fmt::::Opaque"** %74 to i64, !dbg !203
  %76 = lshr i64 %75, 3, !dbg !203
  %77 = add i64 %76, 2147450880, !dbg !203
  %78 = inttoptr i64 %77 to i8*, !dbg !203
  %79 = load i8, i8* %78, !dbg !203
  %80 = icmp ne i8 %79, 0, !dbg !203
  br i1 %80, label %81, label %82, !dbg !203

81:                                               ; preds = %bb2
  call void @__asan_report_store8(i64 %75), !dbg !203
  call void asm sideeffect "", ""(), !dbg !203
  unreachable, !dbg !203

82:                                               ; preds = %bb2
  store %"core::fmt::::Opaque"* %_5, %"core::fmt::::Opaque"** %74, align 8, !dbg !203
  %83 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %16, i32 0, i32 1, !dbg !203
  %84 = bitcast i8** %83 to i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)**, !dbg !203
  %85 = ptrtoint i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %84 to i64, !dbg !203
  %86 = lshr i64 %85, 3, !dbg !203
  %87 = add i64 %86, 2147450880, !dbg !203
  %88 = inttoptr i64 %87 to i8*, !dbg !203
  %89 = load i8, i8* %88, !dbg !203
  %90 = icmp ne i8 %89, 0, !dbg !203
  br i1 %90, label %91, label %92, !dbg !203

91:                                               ; preds = %82
  call void @__asan_report_store8(i64 %85), !dbg !203
  call void asm sideeffect "", ""(), !dbg !203
  unreachable, !dbg !203

92:                                               ; preds = %82
  store i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)* %_3, i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %84, align 8, !dbg !203
  %93 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %16, i32 0, i32 0, !dbg !204
  %94 = ptrtoint i8** %93 to i64, !dbg !204
  %95 = lshr i64 %94, 3, !dbg !204
  %96 = add i64 %95, 2147450880, !dbg !204
  %97 = inttoptr i64 %96 to i8*, !dbg !204
  %98 = load i8, i8* %97, !dbg !204
  %99 = icmp ne i8 %98, 0, !dbg !204
  br i1 %99, label %100, label %101, !dbg !204

100:                                              ; preds = %92
  call void @__asan_report_load8(i64 %94), !dbg !204
  call void asm sideeffect "", ""(), !dbg !204
  unreachable, !dbg !204

101:                                              ; preds = %92
  %102 = load i8*, i8** %93, align 8, !dbg !204, !nonnull !4
  %103 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %16, i32 0, i32 1, !dbg !204
  %104 = ptrtoint i8** %103 to i64, !dbg !204
  %105 = lshr i64 %104, 3, !dbg !204
  %106 = add i64 %105, 2147450880, !dbg !204
  %107 = inttoptr i64 %106 to i8*, !dbg !204
  %108 = load i8, i8* %107, !dbg !204
  %109 = icmp ne i8 %108, 0, !dbg !204
  br i1 %109, label %110, label %111, !dbg !204

110:                                              ; preds = %101
  call void @__asan_report_load8(i64 %104), !dbg !204
  call void asm sideeffect "", ""(), !dbg !204
  unreachable, !dbg !204

111:                                              ; preds = %101
  %112 = load i8*, i8** %103, align 8, !dbg !204, !nonnull !4
  %113 = insertvalue { i8*, i8* } undef, i8* %102, 0, !dbg !204
  %114 = insertvalue { i8*, i8* } %113, i8* %112, 1, !dbg !204
  store i64 1172321806, i64* %17, !dbg !204
  %115 = icmp ne i64 %5, 0, !dbg !204
  br i1 %115, label %116, label %125, !dbg !204

116:                                              ; preds = %111
  %117 = add i64 %23, 0, !dbg !204
  %118 = inttoptr i64 %117 to i64*, !dbg !204
  store i64 -723401728380766731, i64* %118, align 1, !dbg !204
  %119 = add i64 %23, 8, !dbg !204
  %120 = inttoptr i64 %119 to i64*, !dbg !204
  store i64 -723401728380766731, i64* %120, align 1, !dbg !204
  %121 = add i64 %5, 120, !dbg !204
  %122 = inttoptr i64 %121 to i64*, !dbg !204
  %123 = load i64, i64* %122, !dbg !204
  %124 = inttoptr i64 %123 to i8*, !dbg !204
  store i8 0, i8* %124, !dbg !204
  br label %130, !dbg !204

125:                                              ; preds = %111
  %126 = add i64 %23, 0, !dbg !204
  %127 = inttoptr i64 %126 to i64*, !dbg !204
  store i64 0, i64* %127, align 1, !dbg !204
  %128 = add i64 %23, 8, !dbg !204
  %129 = inttoptr i64 %128 to i64*, !dbg !204
  store i64 0, i64* %129, align 1, !dbg !204
  br label %130, !dbg !204

130:                                              ; preds = %125, %116
  ret { i8*, i8* } %114, !dbg !204
}

; core::fmt::num::<impl core::fmt::Debug for i32>::fmt
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal zeroext i1 @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc0974365d01b28f2E"(i32* noalias readonly align 4 dereferenceable(4) %self, %"core::fmt::Formatter"* align 8 dereferenceable(64) %f) unnamed_addr #0 !dbg !205 {
start:
  %f.dbg.spill = alloca %"core::fmt::Formatter"*, align 8
  %self.dbg.spill = alloca i32*, align 8
  %0 = alloca i8, align 1
  store i32* %self, i32** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !210, metadata !DIExpression()), !dbg !212
  store %"core::fmt::Formatter"* %f, %"core::fmt::Formatter"** %f.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata %"core::fmt::Formatter"** %f.dbg.spill, metadata !211, metadata !DIExpression()), !dbg !213
; call core::fmt::Formatter::debug_lower_hex
  %_3 = call zeroext i1 @_ZN4core3fmt9Formatter15debug_lower_hex17h68b810b761abe09bE(%"core::fmt::Formatter"* noalias readonly align 8 dereferenceable(64) %f), !dbg !214
  br label %bb1, !dbg !214

bb1:                                              ; preds = %start
  br i1 %_3, label %bb3, label %bb2, !dbg !215

bb2:                                              ; preds = %bb1
; call core::fmt::Formatter::debug_upper_hex
  %_7 = call zeroext i1 @_ZN4core3fmt9Formatter15debug_upper_hex17h20623f52650bb644E(%"core::fmt::Formatter"* noalias readonly align 8 dereferenceable(64) %f), !dbg !216
  br label %bb5, !dbg !216

bb3:                                              ; preds = %bb1
; call core::fmt::num::<impl core::fmt::LowerHex for i32>::fmt
  %1 = call zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i32$GT$3fmt17h19ab7be5b0fb7587E"(i32* noalias readonly align 4 dereferenceable(4) %self, %"core::fmt::Formatter"* align 8 dereferenceable(64) %f), !dbg !217
  %2 = zext i1 %1 to i8, !dbg !217
  store i8 %2, i8* %0, align 1, !dbg !217
  br label %bb4, !dbg !217

bb4:                                              ; preds = %bb3
  br label %bb11, !dbg !215

bb5:                                              ; preds = %bb2
  br i1 %_7, label %bb7, label %bb6, !dbg !218

bb6:                                              ; preds = %bb5
; call core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt
  %3 = call zeroext i1 @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17hbb27e86dfb8ce1d4E"(i32* noalias readonly align 4 dereferenceable(4) %self, %"core::fmt::Formatter"* align 8 dereferenceable(64) %f), !dbg !219
  %4 = zext i1 %3 to i8, !dbg !219
  store i8 %4, i8* %0, align 1, !dbg !219
  br label %bb9, !dbg !219

bb7:                                              ; preds = %bb5
; call core::fmt::num::<impl core::fmt::UpperHex for i32>::fmt
  %5 = call zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i32$GT$3fmt17hd8a7bd4ba29743b9E"(i32* noalias readonly align 4 dereferenceable(4) %self, %"core::fmt::Formatter"* align 8 dereferenceable(64) %f), !dbg !220
  %6 = zext i1 %5 to i8, !dbg !220
  store i8 %6, i8* %0, align 1, !dbg !220
  br label %bb8, !dbg !220

bb8:                                              ; preds = %bb7
  br label %bb10, !dbg !218

bb9:                                              ; preds = %bb6
  br label %bb10, !dbg !218

bb10:                                             ; preds = %bb9, %bb8
  br label %bb11, !dbg !215

bb11:                                             ; preds = %bb10, %bb4
  %7 = load i8, i8* %0, align 1, !dbg !221, !range !222
  %8 = trunc i8 %7 to i1, !dbg !221
  ret i1 %8, !dbg !221
}

; core::fmt::Arguments::new_v1
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal void @_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %0, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %pieces.0, i64 %pieces.1, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %args.0, i64 %args.1) unnamed_addr #0 !dbg !223 {
start:
  %asan_local_stack_base = alloca i64
  %1 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %2 = icmp ne i32 %1, 0
  br i1 %2, label %3, label %5

3:                                                ; preds = %start
  %4 = call i64 @__asan_stack_malloc_1(i64 128)
  br label %5

5:                                                ; preds = %start, %3
  %6 = phi i64 [ 0, %start ], [ %4, %3 ]
  %7 = icmp eq i64 %6, 0
  br i1 %7, label %8, label %10

8:                                                ; preds = %5
  %MyAlloca = alloca i8, i64 128, align 32
  %9 = ptrtoint i8* %MyAlloca to i64
  br label %10

10:                                               ; preds = %5, %8
  %11 = phi i64 [ %6, %5 ], [ %9, %8 ]
  store i64 %11, i64* %asan_local_stack_base
  %12 = add i64 %11, 32
  %13 = inttoptr i64 %12 to { [0 x { i8*, i8* }]*, i64 }*
  %14 = add i64 %11, 64
  %15 = inttoptr i64 %14 to { [0 x { [0 x i8]*, i64 }]*, i64 }*
  %16 = add i64 %11, 96
  %17 = inttoptr i64 %16 to { i64*, i64 }*
  %18 = inttoptr i64 %11 to i64*
  store i64 1102416563, i64* %18
  %19 = add i64 %11, 8
  %20 = inttoptr i64 %19 to i64*
  store i64 ptrtoint ([67 x i8]* @___asan_gen_.2 to i64), i64* %20
  %21 = add i64 %11, 16
  %22 = inttoptr i64 %21 to i64*
  store i64 ptrtoint (void (%"core::fmt::Arguments"*, [0 x { [0 x i8]*, i64 }]*, i64, [0 x { i8*, i8* }]*, i64)* @_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE to i64), i64* %22
  %23 = lshr i64 %11, 3
  %24 = add i64 %23, 2147450880
  %25 = add i64 %24, 0
  %26 = inttoptr i64 %25 to i64*
  store i64 -940689368107847183, i64* %26, align 1
  %27 = add i64 %24, 10
  %28 = inttoptr i64 %27 to i32*
  store i32 -117902606, i32* %28, align 1
  %29 = add i64 %24, 14
  %30 = inttoptr i64 %29 to i16*
  store i16 -3085, i16* %30, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !290, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !291
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !289, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 64)), !dbg !292
  %31 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %15, i32 0, i32 0
  %32 = ptrtoint [0 x { [0 x i8]*, i64 }]** %31 to i64
  %33 = lshr i64 %32, 3
  %34 = add i64 %33, 2147450880
  %35 = inttoptr i64 %34 to i8*
  %36 = load i8, i8* %35
  %37 = icmp ne i8 %36, 0
  br i1 %37, label %38, label %39

38:                                               ; preds = %10
  call void @__asan_report_store8(i64 %32)
  call void asm sideeffect "", ""()
  unreachable

39:                                               ; preds = %10
  store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %31, align 8
  %40 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %15, i32 0, i32 1
  %41 = ptrtoint i64* %40 to i64
  %42 = lshr i64 %41, 3
  %43 = add i64 %42, 2147450880
  %44 = inttoptr i64 %43 to i8*
  %45 = load i8, i8* %44
  %46 = icmp ne i8 %45, 0
  br i1 %46, label %47, label %48

47:                                               ; preds = %39
  call void @__asan_report_store8(i64 %41)
  call void asm sideeffect "", ""()
  unreachable

48:                                               ; preds = %39
  store i64 %pieces.1, i64* %40, align 8
  %49 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %13, i32 0, i32 0
  %50 = ptrtoint [0 x { i8*, i8* }]** %49 to i64
  %51 = lshr i64 %50, 3
  %52 = add i64 %51, 2147450880
  %53 = inttoptr i64 %52 to i8*
  %54 = load i8, i8* %53
  %55 = icmp ne i8 %54, 0
  br i1 %55, label %56, label %57

56:                                               ; preds = %48
  call void @__asan_report_store8(i64 %50)
  call void asm sideeffect "", ""()
  unreachable

57:                                               ; preds = %48
  store [0 x { i8*, i8* }]* %args.0, [0 x { i8*, i8* }]** %49, align 8
  %58 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %13, i32 0, i32 1
  %59 = ptrtoint i64* %58 to i64
  %60 = lshr i64 %59, 3
  %61 = add i64 %60, 2147450880
  %62 = inttoptr i64 %61 to i8*
  %63 = load i8, i8* %62
  %64 = icmp ne i8 %63, 0
  br i1 %64, label %65, label %66

65:                                               ; preds = %57
  call void @__asan_report_store8(i64 %59)
  call void asm sideeffect "", ""()
  unreachable

66:                                               ; preds = %57
  store i64 %args.1, i64* %58, align 8
  %67 = bitcast { i64*, i64 }* %17 to i8*, !dbg !293
  %68 = add i64 %24, 12, !dbg !293
  %69 = inttoptr i64 %68 to i16*, !dbg !293
  store i16 0, i16* %69, align 1, !dbg !293
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %67), !dbg !293
  %70 = bitcast { i64*, i64 }* %17 to {}**, !dbg !293
  %71 = ptrtoint {}** %70 to i64, !dbg !293
  %72 = lshr i64 %71, 3, !dbg !293
  %73 = add i64 %72, 2147450880, !dbg !293
  %74 = inttoptr i64 %73 to i8*, !dbg !293
  %75 = load i8, i8* %74, !dbg !293
  %76 = icmp ne i8 %75, 0, !dbg !293
  br i1 %76, label %77, label %78, !dbg !293

77:                                               ; preds = %66
  call void @__asan_report_store8(i64 %71), !dbg !293
  call void asm sideeffect "", ""(), !dbg !293
  unreachable, !dbg !293

78:                                               ; preds = %66
  store {}* null, {}** %70, align 8, !dbg !293
  %79 = bitcast %"core::fmt::Arguments"* %0 to { [0 x { [0 x i8]*, i64 }]*, i64 }*, !dbg !294
  %80 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %79, i32 0, i32 0, !dbg !294
  %81 = ptrtoint [0 x { [0 x i8]*, i64 }]** %80 to i64, !dbg !294
  %82 = lshr i64 %81, 3, !dbg !294
  %83 = add i64 %82, 2147450880, !dbg !294
  %84 = inttoptr i64 %83 to i8*, !dbg !294
  %85 = load i8, i8* %84, !dbg !294
  %86 = icmp ne i8 %85, 0, !dbg !294
  br i1 %86, label %87, label %88, !dbg !294

87:                                               ; preds = %78
  call void @__asan_report_store8(i64 %81), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

88:                                               ; preds = %78
  store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %80, align 8, !dbg !294
  %89 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %79, i32 0, i32 1, !dbg !294
  %90 = ptrtoint i64* %89 to i64, !dbg !294
  %91 = lshr i64 %90, 3, !dbg !294
  %92 = add i64 %91, 2147450880, !dbg !294
  %93 = inttoptr i64 %92 to i8*, !dbg !294
  %94 = load i8, i8* %93, !dbg !294
  %95 = icmp ne i8 %94, 0, !dbg !294
  br i1 %95, label %96, label %97, !dbg !294

96:                                               ; preds = %88
  call void @__asan_report_store8(i64 %90), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

97:                                               ; preds = %88
  store i64 %pieces.1, i64* %89, align 8, !dbg !294
  %98 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 3, !dbg !294
  %99 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %17, i32 0, i32 0, !dbg !294
  %100 = ptrtoint i64** %99 to i64, !dbg !294
  %101 = lshr i64 %100, 3, !dbg !294
  %102 = add i64 %101, 2147450880, !dbg !294
  %103 = inttoptr i64 %102 to i8*, !dbg !294
  %104 = load i8, i8* %103, !dbg !294
  %105 = icmp ne i8 %104, 0, !dbg !294
  br i1 %105, label %106, label %107, !dbg !294

106:                                              ; preds = %97
  call void @__asan_report_load8(i64 %100), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

107:                                              ; preds = %97
  %108 = load i64*, i64** %99, align 8, !dbg !294
  %109 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %17, i32 0, i32 1, !dbg !294
  %110 = ptrtoint i64* %109 to i64, !dbg !294
  %111 = lshr i64 %110, 3, !dbg !294
  %112 = add i64 %111, 2147450880, !dbg !294
  %113 = inttoptr i64 %112 to i8*, !dbg !294
  %114 = load i8, i8* %113, !dbg !294
  %115 = icmp ne i8 %114, 0, !dbg !294
  br i1 %115, label %116, label %117, !dbg !294

116:                                              ; preds = %107
  call void @__asan_report_load8(i64 %110), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

117:                                              ; preds = %107
  %118 = load i64, i64* %109, align 8, !dbg !294
  %119 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %98, i32 0, i32 0, !dbg !294
  %120 = ptrtoint i64** %119 to i64, !dbg !294
  %121 = lshr i64 %120, 3, !dbg !294
  %122 = add i64 %121, 2147450880, !dbg !294
  %123 = inttoptr i64 %122 to i8*, !dbg !294
  %124 = load i8, i8* %123, !dbg !294
  %125 = icmp ne i8 %124, 0, !dbg !294
  br i1 %125, label %126, label %127, !dbg !294

126:                                              ; preds = %117
  call void @__asan_report_store8(i64 %120), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

127:                                              ; preds = %117
  store i64* %108, i64** %119, align 8, !dbg !294
  %128 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %98, i32 0, i32 1, !dbg !294
  %129 = ptrtoint i64* %128 to i64, !dbg !294
  %130 = lshr i64 %129, 3, !dbg !294
  %131 = add i64 %130, 2147450880, !dbg !294
  %132 = inttoptr i64 %131 to i8*, !dbg !294
  %133 = load i8, i8* %132, !dbg !294
  %134 = icmp ne i8 %133, 0, !dbg !294
  br i1 %134, label %135, label %136, !dbg !294

135:                                              ; preds = %127
  call void @__asan_report_store8(i64 %129), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

136:                                              ; preds = %127
  store i64 %118, i64* %128, align 8, !dbg !294
  %137 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 5, !dbg !294
  %138 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %137, i32 0, i32 0, !dbg !294
  %139 = ptrtoint [0 x { i8*, i8* }]** %138 to i64, !dbg !294
  %140 = lshr i64 %139, 3, !dbg !294
  %141 = add i64 %140, 2147450880, !dbg !294
  %142 = inttoptr i64 %141 to i8*, !dbg !294
  %143 = load i8, i8* %142, !dbg !294
  %144 = icmp ne i8 %143, 0, !dbg !294
  br i1 %144, label %145, label %146, !dbg !294

145:                                              ; preds = %136
  call void @__asan_report_store8(i64 %139), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

146:                                              ; preds = %136
  store [0 x { i8*, i8* }]* %args.0, [0 x { i8*, i8* }]** %138, align 8, !dbg !294
  %147 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %137, i32 0, i32 1, !dbg !294
  %148 = ptrtoint i64* %147 to i64, !dbg !294
  %149 = lshr i64 %148, 3, !dbg !294
  %150 = add i64 %149, 2147450880, !dbg !294
  %151 = inttoptr i64 %150 to i8*, !dbg !294
  %152 = load i8, i8* %151, !dbg !294
  %153 = icmp ne i8 %152, 0, !dbg !294
  br i1 %153, label %154, label %155, !dbg !294

154:                                              ; preds = %146
  call void @__asan_report_store8(i64 %148), !dbg !294
  call void asm sideeffect "", ""(), !dbg !294
  unreachable, !dbg !294

155:                                              ; preds = %146
  store i64 %args.1, i64* %147, align 8, !dbg !294
  %156 = bitcast { i64*, i64 }* %17 to i8*, !dbg !295
  %157 = add i64 %24, 12, !dbg !295
  %158 = inttoptr i64 %157 to i16*, !dbg !295
  store i16 -1800, i16* %158, align 1, !dbg !295
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %156), !dbg !295
  store i64 1172321806, i64* %18, !dbg !296
  %159 = icmp ne i64 %6, 0, !dbg !296
  br i1 %159, label %160, label %169, !dbg !296

160:                                              ; preds = %155
  %161 = add i64 %24, 0, !dbg !296
  %162 = inttoptr i64 %161 to i64*, !dbg !296
  store i64 -723401728380766731, i64* %162, align 1, !dbg !296
  %163 = add i64 %24, 8, !dbg !296
  %164 = inttoptr i64 %163 to i64*, !dbg !296
  store i64 -723401728380766731, i64* %164, align 1, !dbg !296
  %165 = add i64 %6, 120, !dbg !296
  %166 = inttoptr i64 %165 to i64*, !dbg !296
  %167 = load i64, i64* %166, !dbg !296
  %168 = inttoptr i64 %167 to i8*, !dbg !296
  store i8 0, i8* %168, !dbg !296
  br label %176, !dbg !296

169:                                              ; preds = %155
  %170 = add i64 %24, 0, !dbg !296
  %171 = inttoptr i64 %170 to i64*, !dbg !296
  store i64 0, i64* %171, align 1, !dbg !296
  %172 = add i64 %24, 10, !dbg !296
  %173 = inttoptr i64 %172 to i32*, !dbg !296
  store i32 0, i32* %173, align 1, !dbg !296
  %174 = add i64 %24, 14, !dbg !296
  %175 = inttoptr i64 %174 to i16*, !dbg !296
  store i16 0, i16* %175, align 1, !dbg !296
  br label %176, !dbg !296

176:                                              ; preds = %169, %160
  ret void, !dbg !296
}

; core::num::NonZeroUsize::new_unchecked
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i64 @_ZN4core3num12NonZeroUsize13new_unchecked17h04dd39e9beda0f3fE(i64 %n) unnamed_addr #0 !dbg !297 {
start:
  %n.dbg.spill = alloca i64, align 8
  %0 = alloca i64, align 8
  store i64 %n, i64* %n.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %n.dbg.spill, metadata !306, metadata !DIExpression()), !dbg !307
  store i64 %n, i64* %0, align 8, !dbg !308
  %1 = load i64, i64* %0, align 8, !dbg !309, !range !310
  ret i64 %1, !dbg !309
}

; core::num::NonZeroUsize::get
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i64 @_ZN4core3num12NonZeroUsize3get17h00ad168d50fd0154E(i64 %self) unnamed_addr #0 !dbg !311 {
start:
  %self.dbg.spill = alloca i64, align 8
  store i64 %self, i64* %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %self.dbg.spill, metadata !315, metadata !DIExpression()), !dbg !316
  ret i64 %self, !dbg !317
}

; core::ops::function::FnOnce::call_once{{vtable.shim}}
; Function Attrs: nonlazybind sanitize_address uwtable
define internal i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h5cba647217a5244fE"(i8** %_1) unnamed_addr #1 !dbg !318 {
start:
  %_1.dbg.spill = alloca i8**, align 8
  %_2 = alloca {}, align 1
  store i8** %_1, i8*** %_1.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8*** %_1.dbg.spill, metadata !327, metadata !DIExpression()), !dbg !332
  call void @llvm.dbg.declare(metadata {}* %_2, metadata !328, metadata !DIExpression()), !dbg !332
  %0 = ptrtoint i8** %_1 to i64, !dbg !332
  %1 = lshr i64 %0, 3, !dbg !332
  %2 = add i64 %1, 2147450880, !dbg !332
  %3 = inttoptr i64 %2 to i8*, !dbg !332
  %4 = load i8, i8* %3, !dbg !332
  %5 = icmp ne i8 %4, 0, !dbg !332
  br i1 %5, label %6, label %7, !dbg !332

6:                                                ; preds = %start
  call void @__asan_report_load8(i64 %0), !dbg !332
  call void asm sideeffect "", ""(), !dbg !332
  unreachable, !dbg !332

7:                                                ; preds = %start
  %8 = load i8*, i8** %_1, align 8, !dbg !332, !nonnull !4
; call core::ops::function::FnOnce::call_once
  %9 = call i32 @_ZN4core3ops8function6FnOnce9call_once17h6e01c9070fbbf5b9E(i8* nonnull %8), !dbg !332
  br label %bb1, !dbg !332

bb1:                                              ; preds = %7
  ret i32 %9, !dbg !332
}

; core::ops::function::FnOnce::call_once
; Function Attrs: nonlazybind sanitize_address uwtable
define internal i32 @_ZN4core3ops8function6FnOnce9call_once17h6e01c9070fbbf5b9E(i8* nonnull %0) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !333 {
start:
  %_2 = alloca {}, align 1
  %asan_local_stack_base = alloca i64
  %1 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %2 = icmp ne i32 %1, 0
  br i1 %2, label %3, label %5

3:                                                ; preds = %start
  %4 = call i64 @__asan_stack_malloc_1(i64 96)
  br label %5

5:                                                ; preds = %start, %3
  %6 = phi i64 [ 0, %start ], [ %4, %3 ]
  %7 = icmp eq i64 %6, 0
  br i1 %7, label %8, label %10

8:                                                ; preds = %5
  %MyAlloca = alloca i8, i64 96, align 32
  %9 = ptrtoint i8* %MyAlloca to i64
  br label %10

10:                                               ; preds = %5, %8
  %11 = phi i64 [ %6, %5 ], [ %9, %8 ]
  store i64 %11, i64* %asan_local_stack_base
  %12 = add i64 %11, 32
  %13 = inttoptr i64 %12 to { i8*, i32 }*
  %14 = add i64 %11, 64
  %15 = inttoptr i64 %14 to i8**
  %16 = inttoptr i64 %11 to i64*
  store i64 1102416563, i64* %16
  %17 = add i64 %11, 8
  %18 = inttoptr i64 %17 to i64*
  store i64 ptrtoint ([25 x i8]* @___asan_gen_.3 to i64), i64* %18
  %19 = add i64 %11, 16
  %20 = inttoptr i64 %19 to i64*
  store i64 ptrtoint (i32 (i8*)* @_ZN4core3ops8function6FnOnce9call_once17h6e01c9070fbbf5b9E to i64), i64* %20
  %21 = lshr i64 %11, 3
  %22 = add i64 %21, 2147450880
  %23 = add i64 %22, 0
  %24 = inttoptr i64 %23 to i64*
  store i64 -940415624072269327, i64* %24, align 1
  %25 = add i64 %22, 9
  %26 = inttoptr i64 %25 to i16*
  store i16 -3085, i16* %26, align 1
  %27 = add i64 %22, 11
  %28 = inttoptr i64 %27 to i8*
  store i8 -13, i8* %28, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !337, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 64)), !dbg !339
  %29 = ptrtoint i8** %15 to i64
  %30 = lshr i64 %29, 3
  %31 = add i64 %30, 2147450880
  %32 = inttoptr i64 %31 to i8*
  %33 = load i8, i8* %32
  %34 = icmp ne i8 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %10
  call void @__asan_report_store8(i64 %29)
  call void asm sideeffect "", ""()
  unreachable

36:                                               ; preds = %10
  store i8* %0, i8** %15, align 8
  call void @llvm.dbg.declare(metadata {}* %_2, metadata !338, metadata !DIExpression()), !dbg !339
; invoke std::rt::lang_start::{{closure}}
  %37 = invoke i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h5d4badd86b1e7272E"(i8** noalias readonly align 8 dereferenceable(8) %15)
          to label %bb1 unwind label %cleanup, !dbg !339

bb1:                                              ; preds = %36
  br label %bb2, !dbg !339

bb2:                                              ; preds = %bb1
  store i64 1172321806, i64* %16, !dbg !339
  %38 = icmp ne i64 %6, 0, !dbg !339
  br i1 %38, label %39, label %48, !dbg !339

39:                                               ; preds = %bb2
  %40 = add i64 %22, 0, !dbg !339
  %41 = inttoptr i64 %40 to i64*, !dbg !339
  store i64 -723401728380766731, i64* %41, align 1, !dbg !339
  %42 = add i64 %22, 8, !dbg !339
  %43 = inttoptr i64 %42 to i64*, !dbg !339
  store i64 -723401728380766731, i64* %43, align 1, !dbg !339
  %44 = add i64 %6, 120, !dbg !339
  %45 = inttoptr i64 %44 to i64*, !dbg !339
  %46 = load i64, i64* %45, !dbg !339
  %47 = inttoptr i64 %46 to i8*, !dbg !339
  store i8 0, i8* %47, !dbg !339
  br label %55, !dbg !339

48:                                               ; preds = %bb2
  %49 = add i64 %22, 0, !dbg !339
  %50 = inttoptr i64 %49 to i64*, !dbg !339
  store i64 0, i64* %50, align 1, !dbg !339
  %51 = add i64 %22, 9, !dbg !339
  %52 = inttoptr i64 %51 to i16*, !dbg !339
  store i16 0, i16* %52, align 1, !dbg !339
  %53 = add i64 %22, 11, !dbg !339
  %54 = inttoptr i64 %53 to i8*, !dbg !339
  store i8 0, i8* %54, align 1, !dbg !339
  br label %55, !dbg !339

55:                                               ; preds = %48, %39
  ret i32 %37, !dbg !339

bb3:                                              ; preds = %132
  br label %bb4, !dbg !339

bb4:                                              ; preds = %bb3
  %56 = bitcast { i8*, i32 }* %13 to i8**, !dbg !339
  %57 = ptrtoint i8** %56 to i64, !dbg !339
  %58 = lshr i64 %57, 3, !dbg !339
  %59 = add i64 %58, 2147450880, !dbg !339
  %60 = inttoptr i64 %59 to i8*, !dbg !339
  %61 = load i8, i8* %60, !dbg !339
  %62 = icmp ne i8 %61, 0, !dbg !339
  br i1 %62, label %63, label %64, !dbg !339

63:                                               ; preds = %bb4
  call void @__asan_report_load8(i64 %57), !dbg !339
  call void asm sideeffect "", ""(), !dbg !339
  unreachable, !dbg !339

64:                                               ; preds = %bb4
  %65 = load i8*, i8** %56, align 8, !dbg !339
  %66 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %13, i32 0, i32 1, !dbg !339
  %67 = ptrtoint i32* %66 to i64, !dbg !339
  %68 = lshr i64 %67, 3, !dbg !339
  %69 = add i64 %68, 2147450880, !dbg !339
  %70 = inttoptr i64 %69 to i8*, !dbg !339
  %71 = load i8, i8* %70, !dbg !339
  %72 = icmp ne i8 %71, 0, !dbg !339
  br i1 %72, label %73, label %79, !dbg !339, !prof !139

73:                                               ; preds = %64
  %74 = and i64 %67, 7, !dbg !339
  %75 = add i64 %74, 3, !dbg !339
  %76 = trunc i64 %75 to i8, !dbg !339
  %77 = icmp sge i8 %76, %71, !dbg !339
  br i1 %77, label %78, label %79, !dbg !339

78:                                               ; preds = %73
  call void @__asan_report_load4(i64 %67), !dbg !339
  call void asm sideeffect "", ""()
  unreachable

79:                                               ; preds = %73, %64
  %80 = load i32, i32* %66, align 8, !dbg !339
  %81 = bitcast { i8*, i32 }* %13 to i8*, !dbg !339
  %82 = add i64 %22, 4, !dbg !339
  %83 = inttoptr i64 %82 to i16*, !dbg !339
  store i16 -1800, i16* %83, align 1, !dbg !339
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %81), !dbg !339
  %84 = insertvalue { i8*, i32 } undef, i8* %65, 0, !dbg !339
  %85 = insertvalue { i8*, i32 } %84, i32 %80, 1, !dbg !339
  store i64 1172321806, i64* %16, !dbg !339
  %86 = icmp ne i64 %6, 0, !dbg !339
  br i1 %86, label %87, label %96, !dbg !339

87:                                               ; preds = %79
  %88 = add i64 %22, 0, !dbg !339
  %89 = inttoptr i64 %88 to i64*, !dbg !339
  store i64 -723401728380766731, i64* %89, align 1, !dbg !339
  %90 = add i64 %22, 8, !dbg !339
  %91 = inttoptr i64 %90 to i64*, !dbg !339
  store i64 -723401728380766731, i64* %91, align 1, !dbg !339
  %92 = add i64 %6, 120, !dbg !339
  %93 = inttoptr i64 %92 to i64*, !dbg !339
  %94 = load i64, i64* %93, !dbg !339
  %95 = inttoptr i64 %94 to i8*, !dbg !339
  store i8 0, i8* %95, !dbg !339
  br label %103, !dbg !339

96:                                               ; preds = %79
  %97 = add i64 %22, 0, !dbg !339
  %98 = inttoptr i64 %97 to i64*, !dbg !339
  store i64 0, i64* %98, align 1, !dbg !339
  %99 = add i64 %22, 9, !dbg !339
  %100 = inttoptr i64 %99 to i16*, !dbg !339
  store i16 0, i16* %100, align 1, !dbg !339
  %101 = add i64 %22, 11, !dbg !339
  %102 = inttoptr i64 %101 to i8*, !dbg !339
  store i8 0, i8* %102, align 1, !dbg !339
  br label %103, !dbg !339

103:                                              ; preds = %96, %87
  resume { i8*, i32 } %85, !dbg !339

cleanup:                                          ; preds = %36
  %104 = landingpad { i8*, i32 }
          cleanup
  %105 = bitcast { i8*, i32 }* %13 to i8*
  %106 = add i64 %22, 4
  %107 = inttoptr i64 %106 to i16*
  store i16 0, i16* %107, align 1
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %105)
  %108 = extractvalue { i8*, i32 } %104, 0
  %109 = extractvalue { i8*, i32 } %104, 1
  %110 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %13, i32 0, i32 0
  %111 = ptrtoint i8** %110 to i64
  %112 = lshr i64 %111, 3
  %113 = add i64 %112, 2147450880
  %114 = inttoptr i64 %113 to i8*
  %115 = load i8, i8* %114
  %116 = icmp ne i8 %115, 0
  br i1 %116, label %117, label %118

117:                                              ; preds = %cleanup
  call void @__asan_report_store8(i64 %111)
  call void asm sideeffect "", ""()
  unreachable

118:                                              ; preds = %cleanup
  store i8* %108, i8** %110, align 8
  %119 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %13, i32 0, i32 1
  %120 = ptrtoint i32* %119 to i64
  %121 = lshr i64 %120, 3
  %122 = add i64 %121, 2147450880
  %123 = inttoptr i64 %122 to i8*
  %124 = load i8, i8* %123
  %125 = icmp ne i8 %124, 0
  br i1 %125, label %126, label %132, !prof !139

126:                                              ; preds = %118
  %127 = and i64 %120, 7
  %128 = add i64 %127, 3
  %129 = trunc i64 %128 to i8
  %130 = icmp sge i8 %129, %124
  br i1 %130, label %131, label %132

131:                                              ; preds = %126
  call void @__asan_report_store4(i64 %120)
  call void asm sideeffect "", ""()
  unreachable

132:                                              ; preds = %126, %118
  store i32 %109, i32* %119, align 8
  br label %bb3
}

; core::ptr::drop_in_place
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %_1) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !340 {
start:
  %_1.dbg.spill = alloca i32**, align 8
  %0 = alloca {}, align 1
  %asan_local_stack_base = alloca i64
  %1 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %2 = icmp ne i32 %1, 0
  br i1 %2, label %3, label %5

3:                                                ; preds = %start
  %4 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %5

5:                                                ; preds = %start, %3
  %6 = phi i64 [ 0, %start ], [ %4, %3 ]
  %7 = icmp eq i64 %6, 0
  br i1 %7, label %8, label %10

8:                                                ; preds = %5
  %MyAlloca = alloca i8, i64 64, align 32
  %9 = ptrtoint i8* %MyAlloca to i64
  br label %10

10:                                               ; preds = %5, %8
  %11 = phi i64 [ %6, %5 ], [ %9, %8 ]
  store i64 %11, i64* %asan_local_stack_base
  %12 = add i64 %11, 32
  %13 = inttoptr i64 %12 to { i8*, i32 }*
  %14 = inttoptr i64 %11 to i64*
  store i64 1102416563, i64* %14
  %15 = add i64 %11, 8
  %16 = inttoptr i64 %15 to i64*
  store i64 ptrtoint ([11 x i8]* @___asan_gen_.4 to i64), i64* %16
  %17 = add i64 %11, 16
  %18 = inttoptr i64 %17 to i64*
  store i64 ptrtoint (void (i32**)* @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E to i64), i64* %18
  %19 = lshr i64 %11, 3
  %20 = add i64 %19, 2147450880
  %21 = add i64 %20, 0
  %22 = inttoptr i64 %21 to i64*
  store i64 -868350299093208591, i64* %22, align 1
  store i32** %_1, i32*** %_1.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32*** %_1.dbg.spill, metadata !347, metadata !DIExpression()), !dbg !350
  br label %bb3, !dbg !350

bb1:                                              ; preds = %70
  store i64 1172321806, i64* %14, !dbg !350
  %23 = icmp ne i64 %6, 0, !dbg !350
  br i1 %23, label %24, label %31, !dbg !350

24:                                               ; preds = %bb1
  %25 = add i64 %20, 0, !dbg !350
  %26 = inttoptr i64 %25 to i64*, !dbg !350
  store i64 -723401728380766731, i64* %26, align 1, !dbg !350
  %27 = add i64 %6, 56, !dbg !350
  %28 = inttoptr i64 %27 to i64*, !dbg !350
  %29 = load i64, i64* %28, !dbg !350
  %30 = inttoptr i64 %29 to i8*, !dbg !350
  store i8 0, i8* %30, !dbg !350
  br label %34, !dbg !350

31:                                               ; preds = %bb1
  %32 = add i64 %20, 0, !dbg !350
  %33 = inttoptr i64 %32 to i64*, !dbg !350
  store i64 0, i64* %33, align 1, !dbg !350
  br label %34, !dbg !350

34:                                               ; preds = %31, %24
  ret void, !dbg !350

bb2:                                              ; preds = %79
  %35 = bitcast { i8*, i32 }* %13 to i8**, !dbg !350
  %36 = ptrtoint i8** %35 to i64, !dbg !350
  %37 = lshr i64 %36, 3, !dbg !350
  %38 = add i64 %37, 2147450880, !dbg !350
  %39 = inttoptr i64 %38 to i8*, !dbg !350
  %40 = load i8, i8* %39, !dbg !350
  %41 = icmp ne i8 %40, 0, !dbg !350
  br i1 %41, label %42, label %43, !dbg !350

42:                                               ; preds = %bb2
  call void @__asan_report_load8(i64 %36), !dbg !350
  call void asm sideeffect "", ""(), !dbg !350
  unreachable, !dbg !350

43:                                               ; preds = %bb2
  %44 = load i8*, i8** %35, align 8, !dbg !350
  %45 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %13, i32 0, i32 1, !dbg !350
  %46 = ptrtoint i32* %45 to i64, !dbg !350
  %47 = lshr i64 %46, 3, !dbg !350
  %48 = add i64 %47, 2147450880, !dbg !350
  %49 = inttoptr i64 %48 to i8*, !dbg !350
  %50 = load i8, i8* %49, !dbg !350
  %51 = icmp ne i8 %50, 0, !dbg !350
  br i1 %51, label %52, label %58, !dbg !350, !prof !139

52:                                               ; preds = %43
  %53 = and i64 %46, 7, !dbg !350
  %54 = add i64 %53, 3, !dbg !350
  %55 = trunc i64 %54 to i8, !dbg !350
  %56 = icmp sge i8 %55, %50, !dbg !350
  br i1 %56, label %57, label %58, !dbg !350

57:                                               ; preds = %52
  call void @__asan_report_load4(i64 %46), !dbg !350
  call void asm sideeffect "", ""()
  unreachable

58:                                               ; preds = %52, %43
  %59 = load i32, i32* %45, align 8, !dbg !350
  %60 = bitcast { i8*, i32 }* %13 to i8*, !dbg !350
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %60), !dbg !350
  %61 = insertvalue { i8*, i32 } undef, i8* %44, 0, !dbg !350
  %62 = insertvalue { i8*, i32 } %61, i32 %59, 1, !dbg !350
  resume { i8*, i32 } %62, !dbg !350

bb3:                                              ; preds = %10
  %63 = ptrtoint i32** %_1 to i64, !dbg !350
  %64 = lshr i64 %63, 3, !dbg !350
  %65 = add i64 %64, 2147450880, !dbg !350
  %66 = inttoptr i64 %65 to i8*, !dbg !350
  %67 = load i8, i8* %66, !dbg !350
  %68 = icmp ne i8 %67, 0, !dbg !350
  br i1 %68, label %69, label %70, !dbg !350

69:                                               ; preds = %bb3
  call void @__asan_report_load8(i64 %63), !dbg !350
  call void asm sideeffect "", ""(), !dbg !350
  unreachable, !dbg !350

70:                                               ; preds = %bb3
  %71 = load i32*, i32** %_1, align 8, !dbg !350, !nonnull !4
; call alloc::alloc::box_free
  call void @_ZN5alloc5alloc8box_free17h14973d0e62e12400E(i32* nonnull %71), !dbg !350
  br label %bb1, !dbg !350

bb4:                                              ; No predecessors!
  %72 = ptrtoint i32** %_1 to i64, !dbg !350
  %73 = lshr i64 %72, 3, !dbg !350
  %74 = add i64 %73, 2147450880, !dbg !350
  %75 = inttoptr i64 %74 to i8*, !dbg !350
  %76 = load i8, i8* %75, !dbg !350
  %77 = icmp ne i8 %76, 0, !dbg !350
  br i1 %77, label %78, label %79, !dbg !350

78:                                               ; preds = %bb4
  call void @__asan_report_load8(i64 %72), !dbg !350
  call void asm sideeffect "", ""(), !dbg !350
  unreachable, !dbg !350

79:                                               ; preds = %bb4
  %80 = load i32*, i32** %_1, align 8, !dbg !350, !nonnull !4
; call alloc::alloc::box_free
  call void @_ZN5alloc5alloc8box_free17h14973d0e62e12400E(i32* nonnull %80) #9, !dbg !350
  br label %bb2, !dbg !350
}

; core::ptr::drop_in_place
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4core3ptr13drop_in_place17hea18d0ccc29f056eE(i8** %_1) unnamed_addr #1 !dbg !351 {
start:
  %_1.dbg.spill = alloca i8**, align 8
  %0 = alloca {}, align 1
  store i8** %_1, i8*** %_1.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8*** %_1.dbg.spill, metadata !355, metadata !DIExpression()), !dbg !358
  ret void, !dbg !358
}

; core::ptr::unique::Unique<T>::new_unchecked
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17ha060a82c6513b8a8E"(i8* %ptr) unnamed_addr #0 !dbg !359 {
start:
  %ptr.dbg.spill = alloca i8*, align 8
  %_5 = alloca %"core::marker::PhantomData<u8>", align 1
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 64, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to i8**
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([10 x i8]* @___asan_gen_.5 to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint (i8* (i8*)* @"_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17ha060a82c6513b8a8E" to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -868083117767659023, i64* %21, align 1
  store i8* %ptr, i8** %ptr.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %ptr.dbg.spill, metadata !364, metadata !DIExpression()), !dbg !365
  %22 = ptrtoint i8** %12 to i64, !dbg !366
  %23 = lshr i64 %22, 3, !dbg !366
  %24 = add i64 %23, 2147450880, !dbg !366
  %25 = inttoptr i64 %24 to i8*, !dbg !366
  %26 = load i8, i8* %25, !dbg !366
  %27 = icmp ne i8 %26, 0, !dbg !366
  br i1 %27, label %28, label %29, !dbg !366

28:                                               ; preds = %9
  call void @__asan_report_store8(i64 %22), !dbg !366
  call void asm sideeffect "", ""(), !dbg !366
  unreachable, !dbg !366

29:                                               ; preds = %9
  store i8* %ptr, i8** %12, align 8, !dbg !366
  %30 = bitcast i8** %12 to %"core::marker::PhantomData<u8>"*, !dbg !366
  %31 = load i8*, i8** %12, align 8, !dbg !367, !nonnull !4
  store i64 1172321806, i64* %13, !dbg !367
  %32 = icmp ne i64 %5, 0, !dbg !367
  br i1 %32, label %33, label %40, !dbg !367

33:                                               ; preds = %29
  %34 = add i64 %19, 0, !dbg !367
  %35 = inttoptr i64 %34 to i64*, !dbg !367
  store i64 -723401728380766731, i64* %35, align 1, !dbg !367
  %36 = add i64 %5, 56, !dbg !367
  %37 = inttoptr i64 %36 to i64*, !dbg !367
  %38 = load i64, i64* %37, !dbg !367
  %39 = inttoptr i64 %38 to i8*, !dbg !367
  store i8 0, i8* %39, !dbg !367
  br label %43, !dbg !367

40:                                               ; preds = %29
  %41 = add i64 %19, 0, !dbg !367
  %42 = inttoptr i64 %41 to i64*, !dbg !367
  store i64 0, i64* %42, align 1, !dbg !367
  br label %43, !dbg !367

43:                                               ; preds = %40, %33
  ret i8* %31, !dbg !367
}

; core::ptr::unique::Unique<T>::cast
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$4cast17h51c9bb5a005485cbE"(i32* nonnull %self) unnamed_addr #0 !dbg !368 {
start:
  %self.dbg.spill = alloca i32*, align 8
  store i32* %self, i32** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !378, metadata !DIExpression()), !dbg !381
; call core::ptr::unique::Unique<T>::as_ptr
  %_3 = call i32* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h59c62f8196b2889eE"(i32* nonnull %self), !dbg !382
  br label %bb1, !dbg !382

bb1:                                              ; preds = %start
  %_2 = bitcast i32* %_3 to i8*, !dbg !382
; call core::ptr::unique::Unique<T>::new_unchecked
  %0 = call nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17ha060a82c6513b8a8E"(i8* %_2), !dbg !383
  br label %bb2, !dbg !383

bb2:                                              ; preds = %bb1
  ret i8* %0, !dbg !384
}

; core::ptr::unique::Unique<T>::as_ptr
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i32* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h59c62f8196b2889eE"(i32* nonnull %self) unnamed_addr #0 !dbg !385 {
start:
  %self.dbg.spill = alloca i32*, align 8
  store i32* %self, i32** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !390, metadata !DIExpression()), !dbg !391
  ret i32* %self, !dbg !392
}

; core::ptr::unique::Unique<T>::as_ptr
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17hdcfa3758c305564cE"(i8* nonnull %self) unnamed_addr #0 !dbg !393 {
start:
  %self.dbg.spill = alloca i8*, align 8
  store i8* %self, i8** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !397, metadata !DIExpression()), !dbg !398
  ret i8* %self, !dbg !399
}

; core::ptr::unique::Unique<T>::as_ref
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal align 4 dereferenceable(4) i32* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ref17h09e8b3c37bbfeea7E"(i32** noalias readonly align 8 dereferenceable(8) %self) unnamed_addr #0 !dbg !400 {
start:
  %self.dbg.spill = alloca i32**, align 8
  store i32** %self, i32*** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32*** %self.dbg.spill, metadata !405, metadata !DIExpression()), !dbg !406
  %0 = ptrtoint i32** %self to i64, !dbg !407
  %1 = lshr i64 %0, 3, !dbg !407
  %2 = add i64 %1, 2147450880, !dbg !407
  %3 = inttoptr i64 %2 to i8*, !dbg !407
  %4 = load i8, i8* %3, !dbg !407
  %5 = icmp ne i8 %4, 0, !dbg !407
  br i1 %5, label %6, label %7, !dbg !407

6:                                                ; preds = %start
  call void @__asan_report_load8(i64 %0), !dbg !407
  call void asm sideeffect "", ""(), !dbg !407
  unreachable, !dbg !407

7:                                                ; preds = %start
  %_3 = load i32*, i32** %self, align 8, !dbg !407, !nonnull !4
; call core::ptr::unique::Unique<T>::as_ptr
  %_2 = call i32* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h59c62f8196b2889eE"(i32* nonnull %_3), !dbg !407
  br label %bb1, !dbg !407

bb1:                                              ; preds = %7
  ret i32* %_2, !dbg !408
}

; core::ptr::mut_ptr::<impl *mut T>::is_null
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h4481d89737ba7ccbE"(i8* %self) unnamed_addr #0 !dbg !409 {
start:
  %self.dbg.spill = alloca i8*, align 8
  store i8* %self, i8** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !417, metadata !DIExpression()), !dbg !418
  br label %bb1, !dbg !419

bb1:                                              ; preds = %start
  %0 = icmp eq i8* %self, null, !dbg !420
  ret i1 %0, !dbg !421
}

; core::ptr::non_null::NonNull<T>::new_unchecked
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h403d6d098f19e6f5E"(i8* %ptr) unnamed_addr #0 !dbg !422 {
start:
  %ptr.dbg.spill = alloca i8*, align 8
  %0 = alloca i8*, align 8
  store i8* %ptr, i8** %ptr.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %ptr.dbg.spill, metadata !426, metadata !DIExpression()), !dbg !427
  store i8* %ptr, i8** %0, align 8, !dbg !428
  %1 = load i8*, i8** %0, align 8, !dbg !429, !nonnull !4
  ret i8* %1, !dbg !429
}

; core::ptr::non_null::NonNull<T>::new
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$3new17h8d677d68afef3a01E"(i8* %ptr) unnamed_addr #0 !dbg !430 {
start:
  %ptr.dbg.spill = alloca i8*, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 64, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to i8**
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([10 x i8]* @___asan_gen_.6 to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint (i8* (i8*)* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$3new17h8d677d68afef3a01E" to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -868083117767659023, i64* %21, align 1
  store i8* %ptr, i8** %ptr.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %ptr.dbg.spill, metadata !446, metadata !DIExpression()), !dbg !447
; call core::ptr::mut_ptr::<impl *mut T>::is_null
  %_3 = call zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h4481d89737ba7ccbE"(i8* %ptr), !dbg !448
  br label %bb1, !dbg !448

bb1:                                              ; preds = %9
  %_2 = xor i1 %_3, true, !dbg !449
  br i1 %_2, label %bb3, label %bb2, !dbg !450

bb2:                                              ; preds = %bb1
  %22 = bitcast i8** %12 to {}**, !dbg !451
  %23 = ptrtoint {}** %22 to i64, !dbg !451
  %24 = lshr i64 %23, 3, !dbg !451
  %25 = add i64 %24, 2147450880, !dbg !451
  %26 = inttoptr i64 %25 to i8*, !dbg !451
  %27 = load i8, i8* %26, !dbg !451
  %28 = icmp ne i8 %27, 0, !dbg !451
  br i1 %28, label %29, label %30, !dbg !451

29:                                               ; preds = %bb2
  call void @__asan_report_store8(i64 %23), !dbg !451
  call void asm sideeffect "", ""(), !dbg !451
  unreachable, !dbg !451

30:                                               ; preds = %bb2
  store {}* null, {}** %22, align 8, !dbg !451
  br label %bb5, !dbg !450

bb3:                                              ; preds = %bb1
; call core::ptr::non_null::NonNull<T>::new_unchecked
  %_5 = call nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h403d6d098f19e6f5E"(i8* %ptr), !dbg !452
  br label %bb4, !dbg !452

bb4:                                              ; preds = %bb3
  %31 = ptrtoint i8** %12 to i64, !dbg !453
  %32 = lshr i64 %31, 3, !dbg !453
  %33 = add i64 %32, 2147450880, !dbg !453
  %34 = inttoptr i64 %33 to i8*, !dbg !453
  %35 = load i8, i8* %34, !dbg !453
  %36 = icmp ne i8 %35, 0, !dbg !453
  br i1 %36, label %37, label %38, !dbg !453

37:                                               ; preds = %bb4
  call void @__asan_report_store8(i64 %31), !dbg !453
  call void asm sideeffect "", ""(), !dbg !453
  unreachable, !dbg !453

38:                                               ; preds = %bb4
  store i8* %_5, i8** %12, align 8, !dbg !453
  br label %bb5, !dbg !450

bb5:                                              ; preds = %30, %38
  %39 = ptrtoint i8** %12 to i64, !dbg !454
  %40 = lshr i64 %39, 3, !dbg !454
  %41 = add i64 %40, 2147450880, !dbg !454
  %42 = inttoptr i64 %41 to i8*, !dbg !454
  %43 = load i8, i8* %42, !dbg !454
  %44 = icmp ne i8 %43, 0, !dbg !454
  br i1 %44, label %45, label %46, !dbg !454

45:                                               ; preds = %bb5
  call void @__asan_report_load8(i64 %39), !dbg !454
  call void asm sideeffect "", ""(), !dbg !454
  unreachable, !dbg !454

46:                                               ; preds = %bb5
  %47 = load i8*, i8** %12, align 8, !dbg !454
  store i64 1172321806, i64* %13, !dbg !454
  %48 = icmp ne i64 %5, 0, !dbg !454
  br i1 %48, label %49, label %56, !dbg !454

49:                                               ; preds = %46
  %50 = add i64 %19, 0, !dbg !454
  %51 = inttoptr i64 %50 to i64*, !dbg !454
  store i64 -723401728380766731, i64* %51, align 1, !dbg !454
  %52 = add i64 %5, 56, !dbg !454
  %53 = inttoptr i64 %52 to i64*, !dbg !454
  %54 = load i64, i64* %53, !dbg !454
  %55 = inttoptr i64 %54 to i8*, !dbg !454
  store i8 0, i8* %55, !dbg !454
  br label %59, !dbg !454

56:                                               ; preds = %46
  %57 = add i64 %19, 0, !dbg !454
  %58 = inttoptr i64 %57 to i64*, !dbg !454
  store i64 0, i64* %58, align 1, !dbg !454
  br label %59, !dbg !454

59:                                               ; preds = %56, %49
  ret i8* %47, !dbg !454
}

; core::ptr::non_null::NonNull<T>::as_ptr
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h3236d5ce7b72e6c9E"(i8* nonnull %self) unnamed_addr #0 !dbg !455 {
start:
  %self.dbg.spill = alloca i8*, align 8
  store i8* %self, i8** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !459, metadata !DIExpression()), !dbg !460
  ret i8* %self, !dbg !461
}

; core::alloc::layout::Layout::from_size_align_unchecked
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal { i64, i64 } @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h236616d9db23cd7bE(i64 %size, i64 %align) unnamed_addr #0 !dbg !462 {
start:
  %align.dbg.spill = alloca i64, align 8
  %size.dbg.spill = alloca i64, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 64, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to { i64, i64 }*
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([11 x i8]* @___asan_gen_.7 to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ({ i64, i64 } (i64, i64)* @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h236616d9db23cd7bE to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -868350299093208591, i64* %21, align 1
  store i64 %size, i64* %size.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %size.dbg.spill, metadata !472, metadata !DIExpression()), !dbg !474
  store i64 %align, i64* %align.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %align.dbg.spill, metadata !473, metadata !DIExpression()), !dbg !475
; call core::num::NonZeroUsize::new_unchecked
  %_4 = call i64 @_ZN4core3num12NonZeroUsize13new_unchecked17h04dd39e9beda0f3fE(i64 %align), !dbg !476, !range !310
  br label %bb1, !dbg !476

bb1:                                              ; preds = %9
  %22 = bitcast { i64, i64 }* %12 to i64*, !dbg !477
  %23 = ptrtoint i64* %22 to i64, !dbg !477
  %24 = lshr i64 %23, 3, !dbg !477
  %25 = add i64 %24, 2147450880, !dbg !477
  %26 = inttoptr i64 %25 to i8*, !dbg !477
  %27 = load i8, i8* %26, !dbg !477
  %28 = icmp ne i8 %27, 0, !dbg !477
  br i1 %28, label %29, label %30, !dbg !477

29:                                               ; preds = %bb1
  call void @__asan_report_store8(i64 %23), !dbg !477
  call void asm sideeffect "", ""(), !dbg !477
  unreachable, !dbg !477

30:                                               ; preds = %bb1
  store i64 %size, i64* %22, align 8, !dbg !477
  %31 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %12, i32 0, i32 1, !dbg !477
  %32 = ptrtoint i64* %31 to i64, !dbg !477
  %33 = lshr i64 %32, 3, !dbg !477
  %34 = add i64 %33, 2147450880, !dbg !477
  %35 = inttoptr i64 %34 to i8*, !dbg !477
  %36 = load i8, i8* %35, !dbg !477
  %37 = icmp ne i8 %36, 0, !dbg !477
  br i1 %37, label %38, label %39, !dbg !477

38:                                               ; preds = %30
  call void @__asan_report_store8(i64 %32), !dbg !477
  call void asm sideeffect "", ""(), !dbg !477
  unreachable, !dbg !477

39:                                               ; preds = %30
  store i64 %_4, i64* %31, align 8, !dbg !477
  %40 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %12, i32 0, i32 0, !dbg !478
  %41 = ptrtoint i64* %40 to i64, !dbg !478
  %42 = lshr i64 %41, 3, !dbg !478
  %43 = add i64 %42, 2147450880, !dbg !478
  %44 = inttoptr i64 %43 to i8*, !dbg !478
  %45 = load i8, i8* %44, !dbg !478
  %46 = icmp ne i8 %45, 0, !dbg !478
  br i1 %46, label %47, label %48, !dbg !478

47:                                               ; preds = %39
  call void @__asan_report_load8(i64 %41), !dbg !478
  call void asm sideeffect "", ""(), !dbg !478
  unreachable, !dbg !478

48:                                               ; preds = %39
  %49 = load i64, i64* %40, align 8, !dbg !478
  %50 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %12, i32 0, i32 1, !dbg !478
  %51 = ptrtoint i64* %50 to i64, !dbg !478
  %52 = lshr i64 %51, 3, !dbg !478
  %53 = add i64 %52, 2147450880, !dbg !478
  %54 = inttoptr i64 %53 to i8*, !dbg !478
  %55 = load i8, i8* %54, !dbg !478
  %56 = icmp ne i8 %55, 0, !dbg !478
  br i1 %56, label %57, label %58, !dbg !478

57:                                               ; preds = %48
  call void @__asan_report_load8(i64 %51), !dbg !478
  call void asm sideeffect "", ""(), !dbg !478
  unreachable, !dbg !478

58:                                               ; preds = %48
  %59 = load i64, i64* %50, align 8, !dbg !478, !range !310
  %60 = insertvalue { i64, i64 } undef, i64 %49, 0, !dbg !478
  %61 = insertvalue { i64, i64 } %60, i64 %59, 1, !dbg !478
  store i64 1172321806, i64* %13, !dbg !478
  %62 = icmp ne i64 %5, 0, !dbg !478
  br i1 %62, label %63, label %70, !dbg !478

63:                                               ; preds = %58
  %64 = add i64 %19, 0, !dbg !478
  %65 = inttoptr i64 %64 to i64*, !dbg !478
  store i64 -723401728380766731, i64* %65, align 1, !dbg !478
  %66 = add i64 %5, 56, !dbg !478
  %67 = inttoptr i64 %66 to i64*, !dbg !478
  %68 = load i64, i64* %67, !dbg !478
  %69 = inttoptr i64 %68 to i8*, !dbg !478
  store i8 0, i8* %69, !dbg !478
  br label %73, !dbg !478

70:                                               ; preds = %58
  %71 = add i64 %19, 0, !dbg !478
  %72 = inttoptr i64 %71 to i64*, !dbg !478
  store i64 0, i64* %72, align 1, !dbg !478
  br label %73, !dbg !478

73:                                               ; preds = %70, %63
  ret { i64, i64 } %61, !dbg !478
}

; core::alloc::layout::Layout::size
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i64 @_ZN4core5alloc6layout6Layout4size17h853e5eb674a4bb50E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %self) unnamed_addr #0 !dbg !479 {
start:
  %self.dbg.spill = alloca { i64, i64 }*, align 8
  store { i64, i64 }* %self, { i64, i64 }** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata { i64, i64 }** %self.dbg.spill, metadata !484, metadata !DIExpression()), !dbg !485
  %0 = bitcast { i64, i64 }* %self to i64*, !dbg !486
  %1 = ptrtoint i64* %0 to i64, !dbg !486
  %2 = lshr i64 %1, 3, !dbg !486
  %3 = add i64 %2, 2147450880, !dbg !486
  %4 = inttoptr i64 %3 to i8*, !dbg !486
  %5 = load i8, i8* %4, !dbg !486
  %6 = icmp ne i8 %5, 0, !dbg !486
  br i1 %6, label %7, label %8, !dbg !486

7:                                                ; preds = %start
  call void @__asan_report_load8(i64 %1), !dbg !486
  call void asm sideeffect "", ""(), !dbg !486
  unreachable, !dbg !486

8:                                                ; preds = %start
  %9 = load i64, i64* %0, align 8, !dbg !486
  ret i64 %9, !dbg !487
}

; core::alloc::layout::Layout::align
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i64 @_ZN4core5alloc6layout6Layout5align17h87d317b4c9ca64faE({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %self) unnamed_addr #0 !dbg !488 {
start:
  %self.dbg.spill = alloca { i64, i64 }*, align 8
  store { i64, i64 }* %self, { i64, i64 }** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata { i64, i64 }** %self.dbg.spill, metadata !490, metadata !DIExpression()), !dbg !491
  %0 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 1, !dbg !492
  %1 = ptrtoint i64* %0 to i64, !dbg !492
  %2 = lshr i64 %1, 3, !dbg !492
  %3 = add i64 %2, 2147450880, !dbg !492
  %4 = inttoptr i64 %3 to i8*, !dbg !492
  %5 = load i8, i8* %4, !dbg !492
  %6 = icmp ne i8 %5, 0, !dbg !492
  br i1 %6, label %7, label %8, !dbg !492

7:                                                ; preds = %start
  call void @__asan_report_load8(i64 %1), !dbg !492
  call void asm sideeffect "", ""(), !dbg !492
  unreachable, !dbg !492

8:                                                ; preds = %start
  %_2 = load i64, i64* %0, align 8, !dbg !492, !range !310
; call core::num::NonZeroUsize::get
  %9 = call i64 @_ZN4core3num12NonZeroUsize3get17h00ad168d50fd0154E(i64 %_2), !dbg !492
  br label %bb1, !dbg !492

bb1:                                              ; preds = %8
  ret i64 %9, !dbg !493
}

; core::alloc::layout::Layout::dangling
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal nonnull i8* @_ZN4core5alloc6layout6Layout8dangling17ha2a7c7b40a8768d2E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %self) unnamed_addr #0 !dbg !494 {
start:
  %self.dbg.spill = alloca { i64, i64 }*, align 8
  store { i64, i64 }* %self, { i64, i64 }** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata { i64, i64 }** %self.dbg.spill, metadata !498, metadata !DIExpression()), !dbg !499
; call core::alloc::layout::Layout::align
  %_3 = call i64 @_ZN4core5alloc6layout6Layout5align17h87d317b4c9ca64faE({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %self), !dbg !500
  br label %bb1, !dbg !500

bb1:                                              ; preds = %start
  %_2 = inttoptr i64 %_3 to i8*, !dbg !500
; call core::ptr::non_null::NonNull<T>::new_unchecked
  %0 = call nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h403d6d098f19e6f5E"(i8* %_2), !dbg !501
  br label %bb2, !dbg !501

bb2:                                              ; preds = %bb1
  ret i8* %0, !dbg !502
}

; core::option::Option<T>::ok_or
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @"_ZN4core6option15Option$LT$T$GT$5ok_or17h1ccd596f1af40427E"(i8* %0) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !503 {
start:
  %v.dbg.spill = alloca i8*, align 8
  %err.dbg.spill = alloca %"core::alloc::AllocErr", align 1
  %_7 = alloca i8, align 1
  %asan_local_stack_base = alloca i64
  %1 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %2 = icmp ne i32 %1, 0
  br i1 %2, label %3, label %5

3:                                                ; preds = %start
  %4 = call i64 @__asan_stack_malloc_1(i64 128)
  br label %5

5:                                                ; preds = %start, %3
  %6 = phi i64 [ 0, %start ], [ %4, %3 ]
  %7 = icmp eq i64 %6, 0
  br i1 %7, label %8, label %10

8:                                                ; preds = %5
  %MyAlloca = alloca i8, i64 128, align 32
  %9 = ptrtoint i8* %MyAlloca to i64
  br label %10

10:                                               ; preds = %5, %8
  %11 = phi i64 [ %6, %5 ], [ %9, %8 ]
  store i64 %11, i64* %asan_local_stack_base
  %12 = add i64 %11, 32
  %13 = inttoptr i64 %12 to { i8*, i32 }*
  %14 = add i64 %11, 64
  %15 = inttoptr i64 %14 to i8**
  %16 = add i64 %11, 96
  %17 = inttoptr i64 %16 to i8**
  %18 = inttoptr i64 %11 to i64*
  store i64 1102416563, i64* %18
  %19 = add i64 %11, 8
  %20 = inttoptr i64 %19 to i64*
  store i64 ptrtoint ([31 x i8]* @___asan_gen_.8 to i64), i64* %20
  %21 = add i64 %11, 16
  %22 = inttoptr i64 %21 to i64*
  store i64 ptrtoint (i8* (i8*)* @"_ZN4core6option15Option$LT$T$GT$5ok_or17h1ccd596f1af40427E" to i64), i64* %22
  %23 = lshr i64 %11, 3
  %24 = add i64 %23, 2147450880
  %25 = add i64 %24, 0
  %26 = inttoptr i64 %25 to i64*
  store i64 -940689368107847183, i64* %26, align 1
  %27 = add i64 %24, 9
  %28 = inttoptr i64 %27 to i32*
  store i32 15921906, i32* %28, align 1
  %29 = add i64 %24, 13
  %30 = inttoptr i64 %29 to i16*
  store i16 -3085, i16* %30, align 1
  %31 = add i64 %24, 15
  %32 = inttoptr i64 %31 to i8*
  store i8 -13, i8* %32, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !524, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 96)), !dbg !528
  %33 = ptrtoint i8** %17 to i64
  %34 = lshr i64 %33, 3
  %35 = add i64 %34, 2147450880
  %36 = inttoptr i64 %35 to i8*
  %37 = load i8, i8* %36
  %38 = icmp ne i8 %37, 0
  br i1 %38, label %39, label %40

39:                                               ; preds = %10
  call void @__asan_report_store8(i64 %33)
  call void asm sideeffect "", ""()
  unreachable

40:                                               ; preds = %10
  store i8* %0, i8** %17, align 8
  call void @llvm.dbg.declare(metadata %"core::alloc::AllocErr"* %err.dbg.spill, metadata !525, metadata !DIExpression()), !dbg !529
  store i8 0, i8* %_7, align 1, !dbg !530
  store i8 1, i8* %_7, align 1, !dbg !530
  %41 = bitcast i8** %17 to {}**, !dbg !530
  %42 = ptrtoint {}** %41 to i64, !dbg !530
  %43 = lshr i64 %42, 3, !dbg !530
  %44 = add i64 %43, 2147450880, !dbg !530
  %45 = inttoptr i64 %44 to i8*, !dbg !530
  %46 = load i8, i8* %45, !dbg !530
  %47 = icmp ne i8 %46, 0, !dbg !530
  br i1 %47, label %48, label %49, !dbg !530

48:                                               ; preds = %40
  call void @__asan_report_load8(i64 %42), !dbg !530
  call void asm sideeffect "", ""(), !dbg !530
  unreachable, !dbg !530

49:                                               ; preds = %40
  %50 = load {}*, {}** %41, align 8, !dbg !530
  %51 = icmp ule {}* %50, null, !dbg !530
  %_3 = select i1 %51, i64 0, i64 1, !dbg !530
  switch i64 %_3, label %bb2 [
    i64 0, label %bb1
    i64 1, label %bb3
  ], !dbg !530

bb1:                                              ; preds = %49
  store i8 0, i8* %_7, align 1, !dbg !531
  %52 = bitcast i8** %15 to %"core::result::Result<core::ptr::non_null::NonNull<u8>, core::alloc::AllocErr>::Err"*, !dbg !532
  %53 = bitcast %"core::result::Result<core::ptr::non_null::NonNull<u8>, core::alloc::AllocErr>::Err"* %52 to %"core::alloc::AllocErr"*, !dbg !532
  %54 = bitcast i8** %15 to {}**, !dbg !532
  %55 = ptrtoint {}** %54 to i64, !dbg !532
  %56 = lshr i64 %55, 3, !dbg !532
  %57 = add i64 %56, 2147450880, !dbg !532
  %58 = inttoptr i64 %57 to i8*, !dbg !532
  %59 = load i8, i8* %58, !dbg !532
  %60 = icmp ne i8 %59, 0, !dbg !532
  br i1 %60, label %61, label %62, !dbg !532

61:                                               ; preds = %bb1
  call void @__asan_report_store8(i64 %55), !dbg !532
  call void asm sideeffect "", ""(), !dbg !532
  unreachable, !dbg !532

62:                                               ; preds = %bb1
  store {}* null, {}** %54, align 8, !dbg !532
  br label %bb5, !dbg !533

bb2:                                              ; preds = %49
  unreachable, !dbg !534

bb3:                                              ; preds = %49
  %63 = ptrtoint i8** %17 to i64, !dbg !535
  %64 = lshr i64 %63, 3, !dbg !535
  %65 = add i64 %64, 2147450880, !dbg !535
  %66 = inttoptr i64 %65 to i8*, !dbg !535
  %67 = load i8, i8* %66, !dbg !535
  %68 = icmp ne i8 %67, 0, !dbg !535
  br i1 %68, label %69, label %70, !dbg !535

69:                                               ; preds = %bb3
  call void @__asan_report_load8(i64 %63), !dbg !535
  call void asm sideeffect "", ""(), !dbg !535
  unreachable, !dbg !535

70:                                               ; preds = %bb3
  %v = load i8*, i8** %17, align 8, !dbg !535, !nonnull !4
  store i8* %v, i8** %v.dbg.spill, align 8, !dbg !535
  call void @llvm.dbg.declare(metadata i8** %v.dbg.spill, metadata !526, metadata !DIExpression()), !dbg !536
  %71 = ptrtoint i8** %15 to i64, !dbg !537
  %72 = lshr i64 %71, 3, !dbg !537
  %73 = add i64 %72, 2147450880, !dbg !537
  %74 = inttoptr i64 %73 to i8*, !dbg !537
  %75 = load i8, i8* %74, !dbg !537
  %76 = icmp ne i8 %75, 0, !dbg !537
  br i1 %76, label %77, label %78, !dbg !537

77:                                               ; preds = %70
  call void @__asan_report_store8(i64 %71), !dbg !537
  call void asm sideeffect "", ""(), !dbg !537
  unreachable, !dbg !537

78:                                               ; preds = %70
  store i8* %v, i8** %15, align 8, !dbg !537
  br label %bb5, !dbg !533

bb4:                                              ; No predecessors!
  %79 = bitcast { i8*, i32 }* %13 to i8**, !dbg !538
  %80 = ptrtoint i8** %79 to i64, !dbg !538
  %81 = lshr i64 %80, 3, !dbg !538
  %82 = add i64 %81, 2147450880, !dbg !538
  %83 = inttoptr i64 %82 to i8*, !dbg !538
  %84 = load i8, i8* %83, !dbg !538
  %85 = icmp ne i8 %84, 0, !dbg !538
  br i1 %85, label %86, label %87, !dbg !538

86:                                               ; preds = %bb4
  call void @__asan_report_load8(i64 %80), !dbg !538
  call void asm sideeffect "", ""(), !dbg !538
  unreachable, !dbg !538

87:                                               ; preds = %bb4
  %88 = load i8*, i8** %79, align 8, !dbg !538
  %89 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %13, i32 0, i32 1, !dbg !538
  %90 = ptrtoint i32* %89 to i64, !dbg !538
  %91 = lshr i64 %90, 3, !dbg !538
  %92 = add i64 %91, 2147450880, !dbg !538
  %93 = inttoptr i64 %92 to i8*, !dbg !538
  %94 = load i8, i8* %93, !dbg !538
  %95 = icmp ne i8 %94, 0, !dbg !538
  br i1 %95, label %96, label %102, !dbg !538, !prof !139

96:                                               ; preds = %87
  %97 = and i64 %90, 7, !dbg !538
  %98 = add i64 %97, 3, !dbg !538
  %99 = trunc i64 %98 to i8, !dbg !538
  %100 = icmp sge i8 %99, %94, !dbg !538
  br i1 %100, label %101, label %102, !dbg !538

101:                                              ; preds = %96
  call void @__asan_report_load4(i64 %90), !dbg !538
  call void asm sideeffect "", ""()
  unreachable

102:                                              ; preds = %96, %87
  %103 = load i32, i32* %89, align 8, !dbg !538
  %104 = bitcast { i8*, i32 }* %13 to i8*, !dbg !538
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %104), !dbg !538
  %105 = insertvalue { i8*, i32 } undef, i8* %88, 0, !dbg !538
  %106 = insertvalue { i8*, i32 } %105, i32 %103, 1, !dbg !538
  resume { i8*, i32 } %106, !dbg !538

bb5:                                              ; preds = %62, %78
  %107 = load i8, i8* %_7, align 1, !dbg !539, !range !222
  %108 = trunc i8 %107 to i1, !dbg !539
  br i1 %108, label %bb7, label %bb6, !dbg !539

bb6:                                              ; preds = %bb7, %bb5
  %109 = ptrtoint i8** %15 to i64, !dbg !540
  %110 = lshr i64 %109, 3, !dbg !540
  %111 = add i64 %110, 2147450880, !dbg !540
  %112 = inttoptr i64 %111 to i8*, !dbg !540
  %113 = load i8, i8* %112, !dbg !540
  %114 = icmp ne i8 %113, 0, !dbg !540
  br i1 %114, label %115, label %116, !dbg !540

115:                                              ; preds = %bb6
  call void @__asan_report_load8(i64 %109), !dbg !540
  call void asm sideeffect "", ""(), !dbg !540
  unreachable, !dbg !540

116:                                              ; preds = %bb6
  %117 = load i8*, i8** %15, align 8, !dbg !540
  store i64 1172321806, i64* %18, !dbg !540
  %118 = icmp ne i64 %6, 0, !dbg !540
  br i1 %118, label %119, label %128, !dbg !540

119:                                              ; preds = %116
  %120 = add i64 %24, 0, !dbg !540
  %121 = inttoptr i64 %120 to i64*, !dbg !540
  store i64 -723401728380766731, i64* %121, align 1, !dbg !540
  %122 = add i64 %24, 8, !dbg !540
  %123 = inttoptr i64 %122 to i64*, !dbg !540
  store i64 -723401728380766731, i64* %123, align 1, !dbg !540
  %124 = add i64 %6, 120, !dbg !540
  %125 = inttoptr i64 %124 to i64*, !dbg !540
  %126 = load i64, i64* %125, !dbg !540
  %127 = inttoptr i64 %126 to i8*, !dbg !540
  store i8 0, i8* %127, !dbg !540
  br label %137, !dbg !540

128:                                              ; preds = %116
  %129 = add i64 %24, 0, !dbg !540
  %130 = inttoptr i64 %129 to i64*, !dbg !540
  store i64 0, i64* %130, align 1, !dbg !540
  %131 = add i64 %24, 9, !dbg !540
  %132 = inttoptr i64 %131 to i32*, !dbg !540
  store i32 0, i32* %132, align 1, !dbg !540
  %133 = add i64 %24, 13, !dbg !540
  %134 = inttoptr i64 %133 to i16*, !dbg !540
  store i16 0, i16* %134, align 1, !dbg !540
  %135 = add i64 %24, 15, !dbg !540
  %136 = inttoptr i64 %135 to i8*, !dbg !540
  store i8 0, i8* %136, align 1, !dbg !540
  br label %137, !dbg !540

137:                                              ; preds = %128, %119
  ret i8* %117, !dbg !540

bb7:                                              ; preds = %bb5
  store i8 0, i8* %_7, align 1, !dbg !539
  br label %bb6, !dbg !539
}

; <T as core::convert::From<T>>::from
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h3e8a6cda4bb505a6E"() unnamed_addr #1 !dbg !541 {
start:
  %t.dbg.spill = alloca %"core::alloc::AllocErr", align 1
  call void @llvm.dbg.declare(metadata %"core::alloc::AllocErr"* %t.dbg.spill, metadata !548, metadata !DIExpression()), !dbg !551
  ret void, !dbg !552
}

; <T as core::convert::Into<U>>::into
; Function Attrs: nonlazybind sanitize_address uwtable
define internal nonnull i8* @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hee432a47756e9dbeE"(i8* nonnull %self) unnamed_addr #1 !dbg !553 {
start:
  %self.dbg.spill = alloca i8*, align 8
  store i8* %self, i8** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !555, metadata !DIExpression()), !dbg !559
; call <core::ptr::non_null::NonNull<T> as core::convert::From<core::ptr::unique::Unique<T>>>::from
  %0 = call nonnull i8* @"_ZN119_$LT$core..ptr..non_null..NonNull$LT$T$GT$$u20$as$u20$core..convert..From$LT$core..ptr..unique..Unique$LT$T$GT$$GT$$GT$4from17hebb4f7d1d876b96dE"(i8* nonnull %self), !dbg !560
  br label %bb1, !dbg !560

bb1:                                              ; preds = %start
  ret i8* %0, !dbg !561
}

; <() as std::process::Termination>::report
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i32 @"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hee7847427e568887E"() unnamed_addr #0 !dbg !562 {
start:
  %self.dbg.spill = alloca {}, align 1
  call void @llvm.dbg.declare(metadata {}* %self.dbg.spill, metadata !569, metadata !DIExpression()), !dbg !570
; call <std::process::ExitCode as std::process::Termination>::report
  %0 = call i32 @"_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17h24744b84e9ac7fd6E"(i8 0), !dbg !571
  br label %bb1, !dbg !571

bb1:                                              ; preds = %start
  ret i32 %0, !dbg !572
}

; alloc::alloc::alloc_zeroed
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @_ZN5alloc5alloc12alloc_zeroed17hdb06d12151589786E(i64 %0, i64 %1) unnamed_addr #0 !dbg !573 {
start:
  %asan_local_stack_base = alloca i64
  %2 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %3 = icmp ne i32 %2, 0
  br i1 %3, label %4, label %6

4:                                                ; preds = %start
  %5 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %6

6:                                                ; preds = %start, %4
  %7 = phi i64 [ 0, %start ], [ %5, %4 ]
  %8 = icmp eq i64 %7, 0
  br i1 %8, label %9, label %11

9:                                                ; preds = %6
  %MyAlloca = alloca i8, i64 64, align 32
  %10 = ptrtoint i8* %MyAlloca to i64
  br label %11

11:                                               ; preds = %6, %9
  %12 = phi i64 [ %7, %6 ], [ %10, %9 ]
  store i64 %12, i64* %asan_local_stack_base
  %13 = add i64 %12, 32
  %14 = inttoptr i64 %13 to { i64, i64 }*
  %15 = inttoptr i64 %12 to i64*
  store i64 1102416563, i64* %15
  %16 = add i64 %12, 8
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ([17 x i8]* @___asan_gen_.9 to i64), i64* %17
  %18 = add i64 %12, 16
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint (i8* (i64, i64)* @_ZN5alloc5alloc12alloc_zeroed17hdb06d12151589786E to i64), i64* %19
  %20 = lshr i64 %12, 3
  %21 = add i64 %20, 2147450880
  %22 = add i64 %21, 0
  %23 = inttoptr i64 %22 to i64*
  store i64 -868350299093208591, i64* %23, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !580, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !581
  %24 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 0
  %25 = ptrtoint i64* %24 to i64
  %26 = lshr i64 %25, 3
  %27 = add i64 %26, 2147450880
  %28 = inttoptr i64 %27 to i8*
  %29 = load i8, i8* %28
  %30 = icmp ne i8 %29, 0
  br i1 %30, label %31, label %32

31:                                               ; preds = %11
  call void @__asan_report_store8(i64 %25)
  call void asm sideeffect "", ""()
  unreachable

32:                                               ; preds = %11
  store i64 %0, i64* %24, align 8
  %33 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 1
  %34 = ptrtoint i64* %33 to i64
  %35 = lshr i64 %34, 3
  %36 = add i64 %35, 2147450880
  %37 = inttoptr i64 %36 to i8*
  %38 = load i8, i8* %37
  %39 = icmp ne i8 %38, 0
  br i1 %39, label %40, label %41

40:                                               ; preds = %32
  call void @__asan_report_store8(i64 %34)
  call void asm sideeffect "", ""()
  unreachable

41:                                               ; preds = %32
  store i64 %1, i64* %33, align 8
; call core::alloc::layout::Layout::size
  %_2 = call i64 @_ZN4core5alloc6layout6Layout4size17h853e5eb674a4bb50E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %14), !dbg !582
  br label %bb1, !dbg !582

bb1:                                              ; preds = %41
; call core::alloc::layout::Layout::align
  %_4 = call i64 @_ZN4core5alloc6layout6Layout5align17h87d317b4c9ca64faE({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %14), !dbg !583
  br label %bb2, !dbg !583

bb2:                                              ; preds = %bb1
  %42 = call i8* @__rust_alloc_zeroed(i64 %_2, i64 %_4), !dbg !584
  br label %bb3, !dbg !584

bb3:                                              ; preds = %bb2
  store i64 1172321806, i64* %15, !dbg !585
  %43 = icmp ne i64 %7, 0, !dbg !585
  br i1 %43, label %44, label %51, !dbg !585

44:                                               ; preds = %bb3
  %45 = add i64 %21, 0, !dbg !585
  %46 = inttoptr i64 %45 to i64*, !dbg !585
  store i64 -723401728380766731, i64* %46, align 1, !dbg !585
  %47 = add i64 %7, 56, !dbg !585
  %48 = inttoptr i64 %47 to i64*, !dbg !585
  %49 = load i64, i64* %48, !dbg !585
  %50 = inttoptr i64 %49 to i8*, !dbg !585
  store i8 0, i8* %50, !dbg !585
  br label %54, !dbg !585

51:                                               ; preds = %bb3
  %52 = add i64 %21, 0, !dbg !585
  %53 = inttoptr i64 %52 to i64*, !dbg !585
  store i64 0, i64* %53, align 1, !dbg !585
  br label %54, !dbg !585

54:                                               ; preds = %51, %44
  ret i8* %42, !dbg !585
}

; alloc::alloc::exchange_malloc
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @_ZN5alloc5alloc15exchange_malloc17he756f9617b20b78aE(i64 %size, i64 %align) unnamed_addr #0 !dbg !586 {
start:
  %align.dbg.spill = alloca i64, align 8
  %size.dbg.spill = alloca i64, align 8
  %_8 = alloca %"alloc::alloc::Global", align 1
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_1(i64 128)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 128, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to { i8*, i64 }*
  %13 = add i64 %10, 64
  %14 = inttoptr i64 %13 to { i64, i64 }*
  %15 = add i64 %10, 96
  %16 = inttoptr i64 %15 to { i8*, i64 }*
  %17 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %17
  %18 = add i64 %10, 8
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint ([69 x i8]* @___asan_gen_.10 to i64), i64* %19
  %20 = add i64 %10, 16
  %21 = inttoptr i64 %20 to i64*
  store i64 ptrtoint (i8* (i64, i64)* @_ZN5alloc5alloc15exchange_malloc17he756f9617b20b78aE to i64), i64* %21
  %22 = lshr i64 %10, 3
  %23 = add i64 %22, 2147450880
  %24 = add i64 %23, 0
  %25 = inttoptr i64 %24 to i64*
  store i64 -940689368107847183, i64* %25, align 1
  %26 = add i64 %23, 10
  %27 = inttoptr i64 %26 to i32*
  store i32 -117902606, i32* %27, align 1
  %28 = add i64 %23, 14
  %29 = inttoptr i64 %28 to i16*
  store i16 -3085, i16* %29, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !594, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !600
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !592, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 64)), !dbg !601
  store i64 %size, i64* %size.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %size.dbg.spill, metadata !590, metadata !DIExpression()), !dbg !602
  store i64 %align, i64* %align.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %align.dbg.spill, metadata !591, metadata !DIExpression()), !dbg !603
; call core::alloc::layout::Layout::from_size_align_unchecked
  %30 = call { i64, i64 } @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h236616d9db23cd7bE(i64 %size, i64 %align), !dbg !604
  %layout.0 = extractvalue { i64, i64 } %30, 0, !dbg !604
  %layout.1 = extractvalue { i64, i64 } %30, 1, !dbg !604
  %31 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 0, !dbg !604
  %32 = ptrtoint i64* %31 to i64, !dbg !604
  %33 = lshr i64 %32, 3, !dbg !604
  %34 = add i64 %33, 2147450880, !dbg !604
  %35 = inttoptr i64 %34 to i8*, !dbg !604
  %36 = load i8, i8* %35, !dbg !604
  %37 = icmp ne i8 %36, 0, !dbg !604
  br i1 %37, label %38, label %39, !dbg !604

38:                                               ; preds = %9
  call void @__asan_report_store8(i64 %32), !dbg !604
  call void asm sideeffect "", ""(), !dbg !604
  unreachable, !dbg !604

39:                                               ; preds = %9
  store i64 %layout.0, i64* %31, align 8, !dbg !604
  %40 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 1, !dbg !604
  %41 = ptrtoint i64* %40 to i64, !dbg !604
  %42 = lshr i64 %41, 3, !dbg !604
  %43 = add i64 %42, 2147450880, !dbg !604
  %44 = inttoptr i64 %43 to i8*, !dbg !604
  %45 = load i8, i8* %44, !dbg !604
  %46 = icmp ne i8 %45, 0, !dbg !604
  br i1 %46, label %47, label %48, !dbg !604

47:                                               ; preds = %39
  call void @__asan_report_store8(i64 %41), !dbg !604
  call void asm sideeffect "", ""(), !dbg !604
  unreachable, !dbg !604

48:                                               ; preds = %39
  store i64 %layout.1, i64* %40, align 8, !dbg !604
  br label %bb1, !dbg !604

bb1:                                              ; preds = %48
  %49 = bitcast { i8*, i64 }* %16 to i8*, !dbg !605
  %50 = add i64 %23, 12, !dbg !605
  %51 = inttoptr i64 %50 to i16*, !dbg !605
  store i16 0, i16* %51, align 1, !dbg !605
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %49), !dbg !605
; call <alloc::alloc::Global as core::alloc::AllocRef>::alloc
  %52 = call { i8*, i64 } @"_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$5alloc17h37fa2cc98116af8dE"(%"alloc::alloc::Global"* nonnull align 1 %_8, i64 %layout.0, i64 %layout.1, i1 zeroext false), !dbg !605
  %53 = ptrtoint { i8*, i64 }* %16 to i64, !dbg !605
  %54 = lshr i64 %53, 3, !dbg !605
  %55 = add i64 %54, 2147450880, !dbg !605
  %56 = inttoptr i64 %55 to i16*, !dbg !605
  %57 = load i16, i16* %56, !dbg !605
  %58 = icmp ne i16 %57, 0, !dbg !605
  br i1 %58, label %59, label %60, !dbg !605

59:                                               ; preds = %bb1
  call void @__asan_report_store16(i64 %53), !dbg !605
  call void asm sideeffect "", ""(), !dbg !605
  unreachable, !dbg !605

60:                                               ; preds = %bb1
  store { i8*, i64 } %52, { i8*, i64 }* %16, align 8, !dbg !605
  br label %bb2, !dbg !605

bb2:                                              ; preds = %60
  %61 = bitcast { i8*, i64 }* %16 to {}**, !dbg !606
  %62 = ptrtoint {}** %61 to i64, !dbg !606
  %63 = lshr i64 %62, 3, !dbg !606
  %64 = add i64 %63, 2147450880, !dbg !606
  %65 = inttoptr i64 %64 to i8*, !dbg !606
  %66 = load i8, i8* %65, !dbg !606
  %67 = icmp ne i8 %66, 0, !dbg !606
  br i1 %67, label %68, label %69, !dbg !606

68:                                               ; preds = %bb2
  call void @__asan_report_load8(i64 %62), !dbg !606
  call void asm sideeffect "", ""(), !dbg !606
  unreachable, !dbg !606

69:                                               ; preds = %bb2
  %70 = load {}*, {}** %61, align 8, !dbg !606
  %71 = icmp ule {}* %70, null, !dbg !606
  %_11 = select i1 %71, i64 1, i64 0, !dbg !606
  switch i64 %_11, label %bb4 [
    i64 0, label %bb5
    i64 1, label %bb3
  ], !dbg !606

bb3:                                              ; preds = %69
  call void @__asan_handle_no_return(), !dbg !607
; call alloc::alloc::handle_alloc_error
  call void @_ZN5alloc5alloc18handle_alloc_error17he602a36a7d59d201E(i64 %layout.0, i64 %layout.1), !dbg !607
  unreachable, !dbg !607

bb4:                                              ; preds = %69
  unreachable, !dbg !605

bb5:                                              ; preds = %69
  %72 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %16, i32 0, i32 0, !dbg !608
  %73 = ptrtoint i8** %72 to i64, !dbg !608
  %74 = lshr i64 %73, 3, !dbg !608
  %75 = add i64 %74, 2147450880, !dbg !608
  %76 = inttoptr i64 %75 to i8*, !dbg !608
  %77 = load i8, i8* %76, !dbg !608
  %78 = icmp ne i8 %77, 0, !dbg !608
  br i1 %78, label %79, label %80, !dbg !608

79:                                               ; preds = %bb5
  call void @__asan_report_load8(i64 %73), !dbg !608
  call void asm sideeffect "", ""(), !dbg !608
  unreachable, !dbg !608

80:                                               ; preds = %bb5
  %memory.0 = load i8*, i8** %72, align 8, !dbg !608, !nonnull !4
  %81 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %16, i32 0, i32 1, !dbg !608
  %82 = ptrtoint i64* %81 to i64, !dbg !608
  %83 = lshr i64 %82, 3, !dbg !608
  %84 = add i64 %83, 2147450880, !dbg !608
  %85 = inttoptr i64 %84 to i8*, !dbg !608
  %86 = load i8, i8* %85, !dbg !608
  %87 = icmp ne i8 %86, 0, !dbg !608
  br i1 %87, label %88, label %89, !dbg !608

88:                                               ; preds = %80
  call void @__asan_report_load8(i64 %82), !dbg !608
  call void asm sideeffect "", ""(), !dbg !608
  unreachable, !dbg !608

89:                                               ; preds = %80
  %memory.1 = load i64, i64* %81, align 8, !dbg !608
  %90 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %12, i32 0, i32 0, !dbg !608
  %91 = ptrtoint i8** %90 to i64, !dbg !608
  %92 = lshr i64 %91, 3, !dbg !608
  %93 = add i64 %92, 2147450880, !dbg !608
  %94 = inttoptr i64 %93 to i8*, !dbg !608
  %95 = load i8, i8* %94, !dbg !608
  %96 = icmp ne i8 %95, 0, !dbg !608
  br i1 %96, label %97, label %98, !dbg !608

97:                                               ; preds = %89
  call void @__asan_report_store8(i64 %91), !dbg !608
  call void asm sideeffect "", ""(), !dbg !608
  unreachable, !dbg !608

98:                                               ; preds = %89
  store i8* %memory.0, i8** %90, align 8, !dbg !608
  %99 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %12, i32 0, i32 1, !dbg !608
  %100 = ptrtoint i64* %99 to i64, !dbg !608
  %101 = lshr i64 %100, 3, !dbg !608
  %102 = add i64 %101, 2147450880, !dbg !608
  %103 = inttoptr i64 %102 to i8*, !dbg !608
  %104 = load i8, i8* %103, !dbg !608
  %105 = icmp ne i8 %104, 0, !dbg !608
  br i1 %105, label %106, label %107, !dbg !608

106:                                              ; preds = %98
  call void @__asan_report_store8(i64 %100), !dbg !608
  call void asm sideeffect "", ""(), !dbg !608
  unreachable, !dbg !608

107:                                              ; preds = %98
  store i64 %memory.1, i64* %99, align 8, !dbg !608
; call core::ptr::non_null::NonNull<T>::as_ptr
  %108 = call i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h3236d5ce7b72e6c9E"(i8* nonnull %memory.0), !dbg !609
  br label %bb6, !dbg !609

bb6:                                              ; preds = %107
  %109 = bitcast { i8*, i64 }* %16 to i8*, !dbg !610
  %110 = add i64 %23, 12, !dbg !610
  %111 = inttoptr i64 %110 to i16*, !dbg !610
  store i16 -1800, i16* %111, align 1, !dbg !610
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %109), !dbg !610
  store i64 1172321806, i64* %17, !dbg !611
  %112 = icmp ne i64 %5, 0, !dbg !611
  br i1 %112, label %113, label %122, !dbg !611

113:                                              ; preds = %bb6
  %114 = add i64 %23, 0, !dbg !611
  %115 = inttoptr i64 %114 to i64*, !dbg !611
  store i64 -723401728380766731, i64* %115, align 1, !dbg !611
  %116 = add i64 %23, 8, !dbg !611
  %117 = inttoptr i64 %116 to i64*, !dbg !611
  store i64 -723401728380766731, i64* %117, align 1, !dbg !611
  %118 = add i64 %5, 120, !dbg !611
  %119 = inttoptr i64 %118 to i64*, !dbg !611
  %120 = load i64, i64* %119, !dbg !611
  %121 = inttoptr i64 %120 to i8*, !dbg !611
  store i8 0, i8* %121, !dbg !611
  br label %129, !dbg !611

122:                                              ; preds = %bb6
  %123 = add i64 %23, 0, !dbg !611
  %124 = inttoptr i64 %123 to i64*, !dbg !611
  store i64 0, i64* %124, align 1, !dbg !611
  %125 = add i64 %23, 10, !dbg !611
  %126 = inttoptr i64 %125 to i32*, !dbg !611
  store i32 0, i32* %126, align 1, !dbg !611
  %127 = add i64 %23, 14, !dbg !611
  %128 = inttoptr i64 %127 to i16*, !dbg !611
  store i16 0, i16* %128, align 1, !dbg !611
  br label %129, !dbg !611

129:                                              ; preds = %122, %113
  ret i8* %108, !dbg !611
}

; alloc::alloc::alloc
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @_ZN5alloc5alloc5alloc17h7526c48bac8f90ebE(i64 %0, i64 %1) unnamed_addr #0 !dbg !612 {
start:
  %asan_local_stack_base = alloca i64
  %2 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %3 = icmp ne i32 %2, 0
  br i1 %3, label %4, label %6

4:                                                ; preds = %start
  %5 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %6

6:                                                ; preds = %start, %4
  %7 = phi i64 [ 0, %start ], [ %5, %4 ]
  %8 = icmp eq i64 %7, 0
  br i1 %8, label %9, label %11

9:                                                ; preds = %6
  %MyAlloca = alloca i8, i64 64, align 32
  %10 = ptrtoint i8* %MyAlloca to i64
  br label %11

11:                                               ; preds = %6, %9
  %12 = phi i64 [ %7, %6 ], [ %10, %9 ]
  store i64 %12, i64* %asan_local_stack_base
  %13 = add i64 %12, 32
  %14 = inttoptr i64 %13 to { i64, i64 }*
  %15 = inttoptr i64 %12 to i64*
  store i64 1102416563, i64* %15
  %16 = add i64 %12, 8
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ([17 x i8]* @___asan_gen_.11 to i64), i64* %17
  %18 = add i64 %12, 16
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint (i8* (i64, i64)* @_ZN5alloc5alloc5alloc17h7526c48bac8f90ebE to i64), i64* %19
  %20 = lshr i64 %12, 3
  %21 = add i64 %20, 2147450880
  %22 = add i64 %21, 0
  %23 = inttoptr i64 %22 to i64*
  store i64 -868350299093208591, i64* %23, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !614, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !615
  %24 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 0
  %25 = ptrtoint i64* %24 to i64
  %26 = lshr i64 %25, 3
  %27 = add i64 %26, 2147450880
  %28 = inttoptr i64 %27 to i8*
  %29 = load i8, i8* %28
  %30 = icmp ne i8 %29, 0
  br i1 %30, label %31, label %32

31:                                               ; preds = %11
  call void @__asan_report_store8(i64 %25)
  call void asm sideeffect "", ""()
  unreachable

32:                                               ; preds = %11
  store i64 %0, i64* %24, align 8
  %33 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 1
  %34 = ptrtoint i64* %33 to i64
  %35 = lshr i64 %34, 3
  %36 = add i64 %35, 2147450880
  %37 = inttoptr i64 %36 to i8*
  %38 = load i8, i8* %37
  %39 = icmp ne i8 %38, 0
  br i1 %39, label %40, label %41

40:                                               ; preds = %32
  call void @__asan_report_store8(i64 %34)
  call void asm sideeffect "", ""()
  unreachable

41:                                               ; preds = %32
  store i64 %1, i64* %33, align 8
; call core::alloc::layout::Layout::size
  %_2 = call i64 @_ZN4core5alloc6layout6Layout4size17h853e5eb674a4bb50E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %14), !dbg !616
  br label %bb1, !dbg !616

bb1:                                              ; preds = %41
; call core::alloc::layout::Layout::align
  %_4 = call i64 @_ZN4core5alloc6layout6Layout5align17h87d317b4c9ca64faE({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %14), !dbg !617
  br label %bb2, !dbg !617

bb2:                                              ; preds = %bb1
  %42 = call i8* @__rust_alloc(i64 %_2, i64 %_4), !dbg !618
  br label %bb3, !dbg !618

bb3:                                              ; preds = %bb2
  store i64 1172321806, i64* %15, !dbg !619
  %43 = icmp ne i64 %7, 0, !dbg !619
  br i1 %43, label %44, label %51, !dbg !619

44:                                               ; preds = %bb3
  %45 = add i64 %21, 0, !dbg !619
  %46 = inttoptr i64 %45 to i64*, !dbg !619
  store i64 -723401728380766731, i64* %46, align 1, !dbg !619
  %47 = add i64 %7, 56, !dbg !619
  %48 = inttoptr i64 %47 to i64*, !dbg !619
  %49 = load i64, i64* %48, !dbg !619
  %50 = inttoptr i64 %49 to i8*, !dbg !619
  store i8 0, i8* %50, !dbg !619
  br label %54, !dbg !619

51:                                               ; preds = %bb3
  %52 = add i64 %21, 0, !dbg !619
  %53 = inttoptr i64 %52 to i64*, !dbg !619
  store i64 0, i64* %53, align 1, !dbg !619
  br label %54, !dbg !619

54:                                               ; preds = %51, %44
  ret i8* %42, !dbg !619
}

; alloc::alloc::dealloc
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal void @_ZN5alloc5alloc7dealloc17h0e6f83fc63dc537eE(i8* %ptr, i64 %0, i64 %1) unnamed_addr #0 !dbg !620 {
start:
  %ptr.dbg.spill = alloca i8*, align 8
  %asan_local_stack_base = alloca i64
  %2 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %3 = icmp ne i32 %2, 0
  br i1 %3, label %4, label %6

4:                                                ; preds = %start
  %5 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %6

6:                                                ; preds = %start, %4
  %7 = phi i64 [ 0, %start ], [ %5, %4 ]
  %8 = icmp eq i64 %7, 0
  br i1 %8, label %9, label %11

9:                                                ; preds = %6
  %MyAlloca = alloca i8, i64 64, align 32
  %10 = ptrtoint i8* %MyAlloca to i64
  br label %11

11:                                               ; preds = %6, %9
  %12 = phi i64 [ %7, %6 ], [ %10, %9 ]
  store i64 %12, i64* %asan_local_stack_base
  %13 = add i64 %12, 32
  %14 = inttoptr i64 %13 to { i64, i64 }*
  %15 = inttoptr i64 %12 to i64*
  store i64 1102416563, i64* %15
  %16 = add i64 %12, 8
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ([17 x i8]* @___asan_gen_.12 to i64), i64* %17
  %18 = add i64 %12, 16
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint (void (i8*, i64, i64)* @_ZN5alloc5alloc7dealloc17h0e6f83fc63dc537eE to i64), i64* %19
  %20 = lshr i64 %12, 3
  %21 = add i64 %20, 2147450880
  %22 = add i64 %21, 0
  %23 = inttoptr i64 %22 to i64*
  store i64 -868350299093208591, i64* %23, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !625, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !626
  %24 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 0
  %25 = ptrtoint i64* %24 to i64
  %26 = lshr i64 %25, 3
  %27 = add i64 %26, 2147450880
  %28 = inttoptr i64 %27 to i8*
  %29 = load i8, i8* %28
  %30 = icmp ne i8 %29, 0
  br i1 %30, label %31, label %32

31:                                               ; preds = %11
  call void @__asan_report_store8(i64 %25)
  call void asm sideeffect "", ""()
  unreachable

32:                                               ; preds = %11
  store i64 %0, i64* %24, align 8
  %33 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %14, i32 0, i32 1
  %34 = ptrtoint i64* %33 to i64
  %35 = lshr i64 %34, 3
  %36 = add i64 %35, 2147450880
  %37 = inttoptr i64 %36 to i8*
  %38 = load i8, i8* %37
  %39 = icmp ne i8 %38, 0
  br i1 %39, label %40, label %41

40:                                               ; preds = %32
  call void @__asan_report_store8(i64 %34)
  call void asm sideeffect "", ""()
  unreachable

41:                                               ; preds = %32
  store i64 %1, i64* %33, align 8
  store i8* %ptr, i8** %ptr.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %ptr.dbg.spill, metadata !624, metadata !DIExpression()), !dbg !627
; call core::alloc::layout::Layout::size
  %_4 = call i64 @_ZN4core5alloc6layout6Layout4size17h853e5eb674a4bb50E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %14), !dbg !628
  br label %bb1, !dbg !628

bb1:                                              ; preds = %41
; call core::alloc::layout::Layout::align
  %_6 = call i64 @_ZN4core5alloc6layout6Layout5align17h87d317b4c9ca64faE({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %14), !dbg !629
  br label %bb2, !dbg !629

bb2:                                              ; preds = %bb1
  call void @__rust_dealloc(i8* %ptr, i64 %_4, i64 %_6), !dbg !630
  br label %bb3, !dbg !630

bb3:                                              ; preds = %bb2
  store i64 1172321806, i64* %15, !dbg !631
  %42 = icmp ne i64 %7, 0, !dbg !631
  br i1 %42, label %43, label %50, !dbg !631

43:                                               ; preds = %bb3
  %44 = add i64 %21, 0, !dbg !631
  %45 = inttoptr i64 %44 to i64*, !dbg !631
  store i64 -723401728380766731, i64* %45, align 1, !dbg !631
  %46 = add i64 %7, 56, !dbg !631
  %47 = inttoptr i64 %46 to i64*, !dbg !631
  %48 = load i64, i64* %47, !dbg !631
  %49 = inttoptr i64 %48 to i8*, !dbg !631
  store i8 0, i8* %49, !dbg !631
  br label %53, !dbg !631

50:                                               ; preds = %bb3
  %51 = add i64 %21, 0, !dbg !631
  %52 = inttoptr i64 %51 to i64*, !dbg !631
  store i64 0, i64* %52, align 1, !dbg !631
  br label %53, !dbg !631

53:                                               ; preds = %50, %43
  ret void, !dbg !631
}

; alloc::alloc::box_free
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal void @_ZN5alloc5alloc8box_free17h14973d0e62e12400E(i32* nonnull %0) unnamed_addr #0 !dbg !632 {
start:
  %align.dbg.spill = alloca i64, align 8
  %1 = alloca i64, align 8
  %size.dbg.spill = alloca i64, align 8
  %2 = alloca i64, align 8
  %_14 = alloca %"alloc::alloc::Global", align 1
  %asan_local_stack_base = alloca i64
  %3 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %4 = icmp ne i32 %3, 0
  br i1 %4, label %5, label %7

5:                                                ; preds = %start
  %6 = call i64 @__asan_stack_malloc_1(i64 96)
  br label %7

7:                                                ; preds = %start, %5
  %8 = phi i64 [ 0, %start ], [ %6, %5 ]
  %9 = icmp eq i64 %8, 0
  br i1 %9, label %10, label %12

10:                                               ; preds = %7
  %MyAlloca = alloca i8, i64 96, align 32
  %11 = ptrtoint i8* %MyAlloca to i64
  br label %12

12:                                               ; preds = %7, %10
  %13 = phi i64 [ %8, %7 ], [ %11, %10 ]
  store i64 %13, i64* %asan_local_stack_base
  %14 = add i64 %13, 32
  %15 = inttoptr i64 %14 to { i64, i64 }*
  %16 = add i64 %13, 64
  %17 = inttoptr i64 %16 to i32**
  %18 = inttoptr i64 %13 to i64*
  store i64 1102416563, i64* %18
  %19 = add i64 %13, 8
  %20 = inttoptr i64 %19 to i64*
  store i64 ptrtoint ([39 x i8]* @___asan_gen_.13 to i64), i64* %20
  %21 = add i64 %13, 16
  %22 = inttoptr i64 %21 to i64*
  store i64 ptrtoint (void (i32*)* @_ZN5alloc5alloc8box_free17h14973d0e62e12400E to i64), i64* %22
  %23 = lshr i64 %13, 3
  %24 = add i64 %23, 2147450880
  %25 = add i64 %24, 0
  %26 = inttoptr i64 %25 to i64*
  store i64 -940689368107847183, i64* %26, align 1
  %27 = add i64 %24, 9
  %28 = inttoptr i64 %27 to i16*
  store i16 -3085, i16* %28, align 1
  %29 = add i64 %24, 11
  %30 = inttoptr i64 %29 to i8*
  store i8 -13, i8* %30, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !641, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !643
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !636, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 64)), !dbg !644
  %31 = ptrtoint i32** %17 to i64
  %32 = lshr i64 %31, 3
  %33 = add i64 %32, 2147450880
  %34 = inttoptr i64 %33 to i8*
  %35 = load i8, i8* %34
  %36 = icmp ne i8 %35, 0
  br i1 %36, label %37, label %38

37:                                               ; preds = %12
  call void @__asan_report_store8(i64 %31)
  call void asm sideeffect "", ""()
  unreachable

38:                                               ; preds = %12
  store i32* %0, i32** %17, align 8
; call core::ptr::unique::Unique<T>::as_ref
  %_4 = call align 4 dereferenceable(4) i32* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ref17h09e8b3c37bbfeea7E"(i32** noalias readonly align 8 dereferenceable(8) %17), !dbg !645
  br label %bb1, !dbg !645

bb1:                                              ; preds = %38
  %39 = bitcast i64* %2 to i8*, !dbg !646
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %39), !dbg !646
  store i64 4, i64* %2, align 8, !dbg !646
  %size = load i64, i64* %2, align 8, !dbg !646
  %40 = bitcast i64* %2 to i8*, !dbg !646
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %40), !dbg !646
  store i64 %size, i64* %size.dbg.spill, align 8, !dbg !646
  call void @llvm.dbg.declare(metadata i64* %size.dbg.spill, metadata !637, metadata !DIExpression()), !dbg !647
  br label %bb2, !dbg !646

bb2:                                              ; preds = %bb1
; call core::ptr::unique::Unique<T>::as_ref
  %_8 = call align 4 dereferenceable(4) i32* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ref17h09e8b3c37bbfeea7E"(i32** noalias readonly align 8 dereferenceable(8) %17), !dbg !648
  br label %bb3, !dbg !648

bb3:                                              ; preds = %bb2
  %41 = bitcast i64* %1 to i8*, !dbg !649
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %41), !dbg !649
  store i64 4, i64* %1, align 8, !dbg !649
  %align = load i64, i64* %1, align 8, !dbg !649
  %42 = bitcast i64* %1 to i8*, !dbg !649
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %42), !dbg !649
  store i64 %align, i64* %align.dbg.spill, align 8, !dbg !649
  call void @llvm.dbg.declare(metadata i64* %align.dbg.spill, metadata !639, metadata !DIExpression()), !dbg !650
  br label %bb4, !dbg !649

bb4:                                              ; preds = %bb3
; call core::alloc::layout::Layout::from_size_align_unchecked
  %43 = call { i64, i64 } @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h236616d9db23cd7bE(i64 %size, i64 %align), !dbg !651
  %layout.0 = extractvalue { i64, i64 } %43, 0, !dbg !651
  %layout.1 = extractvalue { i64, i64 } %43, 1, !dbg !651
  %44 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %15, i32 0, i32 0, !dbg !651
  %45 = ptrtoint i64* %44 to i64, !dbg !651
  %46 = lshr i64 %45, 3, !dbg !651
  %47 = add i64 %46, 2147450880, !dbg !651
  %48 = inttoptr i64 %47 to i8*, !dbg !651
  %49 = load i8, i8* %48, !dbg !651
  %50 = icmp ne i8 %49, 0, !dbg !651
  br i1 %50, label %51, label %52, !dbg !651

51:                                               ; preds = %bb4
  call void @__asan_report_store8(i64 %45), !dbg !651
  call void asm sideeffect "", ""(), !dbg !651
  unreachable, !dbg !651

52:                                               ; preds = %bb4
  store i64 %layout.0, i64* %44, align 8, !dbg !651
  %53 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %15, i32 0, i32 1, !dbg !651
  %54 = ptrtoint i64* %53 to i64, !dbg !651
  %55 = lshr i64 %54, 3, !dbg !651
  %56 = add i64 %55, 2147450880, !dbg !651
  %57 = inttoptr i64 %56 to i8*, !dbg !651
  %58 = load i8, i8* %57, !dbg !651
  %59 = icmp ne i8 %58, 0, !dbg !651
  br i1 %59, label %60, label %61, !dbg !651

60:                                               ; preds = %52
  call void @__asan_report_store8(i64 %54), !dbg !651
  call void asm sideeffect "", ""(), !dbg !651
  unreachable, !dbg !651

61:                                               ; preds = %52
  store i64 %layout.1, i64* %53, align 8, !dbg !651
  br label %bb5, !dbg !651

bb5:                                              ; preds = %61
  %62 = ptrtoint i32** %17 to i64, !dbg !652
  %63 = lshr i64 %62, 3, !dbg !652
  %64 = add i64 %63, 2147450880, !dbg !652
  %65 = inttoptr i64 %64 to i8*, !dbg !652
  %66 = load i8, i8* %65, !dbg !652
  %67 = icmp ne i8 %66, 0, !dbg !652
  br i1 %67, label %68, label %69, !dbg !652

68:                                               ; preds = %bb5
  call void @__asan_report_load8(i64 %62), !dbg !652
  call void asm sideeffect "", ""(), !dbg !652
  unreachable, !dbg !652

69:                                               ; preds = %bb5
  %_17 = load i32*, i32** %17, align 8, !dbg !652, !nonnull !4
; call core::ptr::unique::Unique<T>::cast
  %_16 = call nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$4cast17h51c9bb5a005485cbE"(i32* nonnull %_17), !dbg !652
  br label %bb6, !dbg !652

bb6:                                              ; preds = %69
; call <T as core::convert::Into<U>>::into
  %_15 = call nonnull i8* @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hee432a47756e9dbeE"(i8* nonnull %_16), !dbg !652
  br label %bb7, !dbg !652

bb7:                                              ; preds = %bb6
; call <alloc::alloc::Global as core::alloc::AllocRef>::dealloc
  call void @"_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$7dealloc17h03eb740b36c31772E"(%"alloc::alloc::Global"* nonnull align 1 %_14, i8* nonnull %_15, i64 %layout.0, i64 %layout.1), !dbg !653
  br label %bb8, !dbg !653

bb8:                                              ; preds = %bb7
  store i64 1172321806, i64* %18, !dbg !654
  %70 = icmp ne i64 %8, 0, !dbg !654
  br i1 %70, label %71, label %80, !dbg !654

71:                                               ; preds = %bb8
  %72 = add i64 %24, 0, !dbg !654
  %73 = inttoptr i64 %72 to i64*, !dbg !654
  store i64 -723401728380766731, i64* %73, align 1, !dbg !654
  %74 = add i64 %24, 8, !dbg !654
  %75 = inttoptr i64 %74 to i64*, !dbg !654
  store i64 -723401728380766731, i64* %75, align 1, !dbg !654
  %76 = add i64 %8, 120, !dbg !654
  %77 = inttoptr i64 %76 to i64*, !dbg !654
  %78 = load i64, i64* %77, !dbg !654
  %79 = inttoptr i64 %78 to i8*, !dbg !654
  store i8 0, i8* %79, !dbg !654
  br label %87, !dbg !654

80:                                               ; preds = %bb8
  %81 = add i64 %24, 0, !dbg !654
  %82 = inttoptr i64 %81 to i64*, !dbg !654
  store i64 0, i64* %82, align 1, !dbg !654
  %83 = add i64 %24, 9, !dbg !654
  %84 = inttoptr i64 %83 to i16*, !dbg !654
  store i16 0, i16* %84, align 1, !dbg !654
  %85 = add i64 %24, 11, !dbg !654
  %86 = inttoptr i64 %85 to i8*, !dbg !654
  store i8 0, i8* %86, align 1, !dbg !654
  br label %87, !dbg !654

87:                                               ; preds = %80, %71
  ret void, !dbg !654
}

; alloc::boxed::Box<T>::leak
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal align 4 dereferenceable(4) i32* @"_ZN5alloc5boxed12Box$LT$T$GT$4leak17h04ded932ea566d9eE"(i32* noalias nonnull align 4 %b) unnamed_addr #0 !dbg !655 {
start:
  %self.dbg.spill.i = alloca i32**, align 8
  call void @llvm.dbg.declare(metadata i32*** %self.dbg.spill.i, metadata !664, metadata !DIExpression()), !dbg !678
  %value.dbg.spill.i = alloca i32*, align 8
  call void @llvm.dbg.declare(metadata i32** %value.dbg.spill.i, metadata !680, metadata !DIExpression()), !dbg !685
  %0 = alloca i32*, align 8
  %b.dbg.spill = alloca i32*, align 8
  %asan_local_stack_base = alloca i64
  %1 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %2 = icmp ne i32 %1, 0
  br i1 %2, label %3, label %5

3:                                                ; preds = %start
  %4 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %5

5:                                                ; preds = %start, %3
  %6 = phi i64 [ 0, %start ], [ %4, %3 ]
  %7 = icmp eq i64 %6, 0
  br i1 %7, label %8, label %10

8:                                                ; preds = %5
  %MyAlloca = alloca i8, i64 64, align 32
  %9 = ptrtoint i8* %MyAlloca to i64
  br label %10

10:                                               ; preds = %5, %8
  %11 = phi i64 [ %6, %5 ], [ %9, %8 ]
  store i64 %11, i64* %asan_local_stack_base
  %12 = add i64 %11, 32
  %13 = inttoptr i64 %12 to i32**
  %14 = inttoptr i64 %11 to i64*
  store i64 1102416563, i64* %14
  %15 = add i64 %11, 8
  %16 = inttoptr i64 %15 to i64*
  store i64 ptrtoint ([16 x i8]* @___asan_gen_.14 to i64), i64* %16
  %17 = add i64 %11, 16
  %18 = inttoptr i64 %17 to i64*
  store i64 ptrtoint (i32* (i32*)* @"_ZN5alloc5boxed12Box$LT$T$GT$4leak17h04ded932ea566d9eE" to i64), i64* %18
  %19 = lshr i64 %11, 3
  %20 = add i64 %19, 2147450880
  %21 = add i64 %20, 0
  %22 = inttoptr i64 %21 to i64*
  store i64 -868082052615769615, i64* %22, align 1
  store i32* %b, i32** %b.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32** %b.dbg.spill, metadata !663, metadata !DIExpression()), !dbg !687
  %23 = bitcast i32** %13 to i8*, !dbg !688
  %24 = add i64 %20, 4, !dbg !688
  %25 = inttoptr i64 %24 to i8*, !dbg !688
  store i8 0, i8* %25, align 1, !dbg !688
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %23), !dbg !688
  %26 = bitcast i32** %value.dbg.spill.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %26)
  %27 = bitcast i32** %0 to i8*
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %27)
  store i32* %b, i32** %value.dbg.spill.i, align 8, !noalias !689
  store i32* %b, i32** %0, align 8, !dbg !692, !noalias !689
  %28 = load i32*, i32** %0, align 8, !dbg !693, !noalias !689, !nonnull !4
  %29 = bitcast i32** %value.dbg.spill.i to i8*, !dbg !693
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %29), !dbg !693
  %30 = bitcast i32** %0 to i8*, !dbg !693
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %30), !dbg !693
  %31 = ptrtoint i32** %13 to i64, !dbg !688
  %32 = lshr i64 %31, 3, !dbg !688
  %33 = add i64 %32, 2147450880, !dbg !688
  %34 = inttoptr i64 %33 to i8*, !dbg !688
  %35 = load i8, i8* %34, !dbg !688
  %36 = icmp ne i8 %35, 0, !dbg !688
  br i1 %36, label %37, label %38, !dbg !688

37:                                               ; preds = %10
  call void @__asan_report_store8(i64 %31), !dbg !688
  call void asm sideeffect "", ""(), !dbg !688
  unreachable, !dbg !688

38:                                               ; preds = %10
  store i32* %28, i32** %13, align 8, !dbg !688
  br label %bb1, !dbg !688

bb1:                                              ; preds = %38
  %39 = bitcast i32*** %self.dbg.spill.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %39)
  store i32** %13, i32*** %self.dbg.spill.i, align 8
  %40 = bitcast i32*** %self.dbg.spill.i to i8*, !dbg !694
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %40), !dbg !694
  br label %bb2, !dbg !688

bb2:                                              ; preds = %bb1
  %41 = ptrtoint i32** %13 to i64, !dbg !688
  %42 = lshr i64 %41, 3, !dbg !688
  %43 = add i64 %42, 2147450880, !dbg !688
  %44 = inttoptr i64 %43 to i8*, !dbg !688
  %45 = load i8, i8* %44, !dbg !688
  %46 = icmp ne i8 %45, 0, !dbg !688
  br i1 %46, label %47, label %48, !dbg !688

47:                                               ; preds = %bb2
  call void @__asan_report_load8(i64 %41), !dbg !688
  call void asm sideeffect "", ""(), !dbg !688
  unreachable, !dbg !688

48:                                               ; preds = %bb2
  %_6 = load i32*, i32** %13, align 8, !dbg !688, !nonnull !4
; call core::ptr::unique::Unique<T>::as_ptr
  %_5 = call i32* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h59c62f8196b2889eE"(i32* nonnull %_6), !dbg !688
  br label %bb3, !dbg !688

bb3:                                              ; preds = %48
  %49 = bitcast i32** %13 to i8*, !dbg !695
  %50 = add i64 %20, 4, !dbg !695
  %51 = inttoptr i64 %50 to i8*, !dbg !695
  store i8 -8, i8* %51, align 1, !dbg !695
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %49), !dbg !695
  store i64 1172321806, i64* %14, !dbg !696
  %52 = icmp ne i64 %6, 0, !dbg !696
  br i1 %52, label %53, label %60, !dbg !696

53:                                               ; preds = %bb3
  %54 = add i64 %20, 0, !dbg !696
  %55 = inttoptr i64 %54 to i64*, !dbg !696
  store i64 -723401728380766731, i64* %55, align 1, !dbg !696
  %56 = add i64 %6, 56, !dbg !696
  %57 = inttoptr i64 %56 to i64*, !dbg !696
  %58 = load i64, i64* %57, !dbg !696
  %59 = inttoptr i64 %58 to i8*, !dbg !696
  store i8 0, i8* %59, !dbg !696
  br label %63, !dbg !696

60:                                               ; preds = %bb3
  %61 = add i64 %20, 0, !dbg !696
  %62 = inttoptr i64 %61 to i64*, !dbg !696
  store i64 0, i64* %62, align 1, !dbg !696
  br label %63, !dbg !696

63:                                               ; preds = %60, %53
  ret i32* %_5, !dbg !696
}

; alloc::boxed::Box<T>::into_raw
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i32* @"_ZN5alloc5boxed12Box$LT$T$GT$8into_raw17h9bfedc35f7b96439E"(i32* noalias nonnull align 4 %b) unnamed_addr #0 !dbg !697 {
start:
  %b.dbg.spill = alloca i32*, align 8
  store i32* %b, i32** %b.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32** %b.dbg.spill, metadata !701, metadata !DIExpression()), !dbg !702
; call alloc::boxed::Box<T>::leak
  %_2 = call align 4 dereferenceable(4) i32* @"_ZN5alloc5boxed12Box$LT$T$GT$4leak17h04ded932ea566d9eE"(i32* noalias nonnull align 4 %b), !dbg !703
  br label %bb1, !dbg !703

bb1:                                              ; preds = %start
  ret i32* %_2, !dbg !704
}

; <alloc::alloc::Global as core::alloc::AllocRef>::alloc
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal { i8*, i64 } @"_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$5alloc17h37fa2cc98116af8dE"(%"alloc::alloc::Global"* nonnull align 1 %self, i64 %0, i64 %1, i1 zeroext %2) unnamed_addr #0 !dbg !705 {
start:
  %ptr.dbg.spill = alloca i8*, align 8
  %val.dbg.spill = alloca i8*, align 8
  %size.dbg.spill = alloca i64, align 8
  %err.dbg.spill = alloca %"core::alloc::AllocErr", align 1
  %self.dbg.spill = alloca %"alloc::alloc::Global"*, align 8
  %raw_ptr = alloca i8*, align 8
  %init = alloca i8, align 1
  %asan_local_stack_base = alloca i64
  %3 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %4 = icmp ne i32 %3, 0
  br i1 %4, label %5, label %7

5:                                                ; preds = %start
  %6 = call i64 @__asan_stack_malloc_2(i64 192)
  br label %7

7:                                                ; preds = %start, %5
  %8 = phi i64 [ 0, %start ], [ %6, %5 ]
  %9 = icmp eq i64 %8, 0
  br i1 %9, label %10, label %12

10:                                               ; preds = %7
  %MyAlloca = alloca i8, i64 192, align 32
  %11 = ptrtoint i8* %MyAlloca to i64
  br label %12

12:                                               ; preds = %7, %10
  %13 = phi i64 [ %8, %7 ], [ %11, %10 ]
  store i64 %13, i64* %asan_local_stack_base
  %14 = add i64 %13, 32
  %15 = inttoptr i64 %14 to { i8*, i64 }*
  %16 = add i64 %13, 64
  %17 = inttoptr i64 %16 to i8**
  %18 = add i64 %13, 96
  %19 = inttoptr i64 %18 to { i8*, i64 }*
  %20 = add i64 %13, 128
  %21 = inttoptr i64 %20 to { i8*, i64 }*
  %22 = add i64 %13, 160
  %23 = inttoptr i64 %22 to { i64, i64 }*
  %24 = inttoptr i64 %13 to i64*
  store i64 1102416563, i64* %24
  %25 = add i64 %13, 8
  %26 = inttoptr i64 %25 to i64*
  store i64 ptrtoint ([74 x i8]* @___asan_gen_.15 to i64), i64* %26
  %27 = add i64 %13, 16
  %28 = inttoptr i64 %27 to i64*
  store i64 ptrtoint ({ i8*, i64 } (%"alloc::alloc::Global"*, i64, i64, i1)* @"_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$5alloc17h37fa2cc98116af8dE" to i64), i64* %28
  %29 = lshr i64 %13, 3
  %30 = add i64 %29, 2147450880
  %31 = add i64 %30, 0
  %32 = inttoptr i64 %31 to i64*
  store i64 -940415624072269327, i64* %32, align 1
  %33 = add i64 %30, 8
  %34 = inttoptr i64 %33 to i64*
  store i64 -940415624055426312, i64* %34, align 1
  %35 = add i64 %30, 18
  %36 = inttoptr i64 %35 to i16*
  store i16 -3342, i16* %36, align 1
  %37 = add i64 %30, 22
  %38 = inttoptr i64 %37 to i16*
  store i16 -3085, i16* %38, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !727, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 160)), !dbg !739
  %39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %23, i32 0, i32 0
  %40 = ptrtoint i64* %39 to i64
  %41 = lshr i64 %40, 3
  %42 = add i64 %41, 2147450880
  %43 = inttoptr i64 %42 to i8*
  %44 = load i8, i8* %43
  %45 = icmp ne i8 %44, 0
  br i1 %45, label %46, label %47

46:                                               ; preds = %12
  call void @__asan_report_store8(i64 %40)
  call void asm sideeffect "", ""()
  unreachable

47:                                               ; preds = %12
  store i64 %0, i64* %39, align 8
  %48 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %23, i32 0, i32 1
  %49 = ptrtoint i64* %48 to i64
  %50 = lshr i64 %49, 3
  %51 = add i64 %50, 2147450880
  %52 = inttoptr i64 %51 to i8*
  %53 = load i8, i8* %52
  %54 = icmp ne i8 %53, 0
  br i1 %54, label %55, label %56

55:                                               ; preds = %47
  call void @__asan_report_store8(i64 %49)
  call void asm sideeffect "", ""()
  unreachable

56:                                               ; preds = %47
  store i64 %1, i64* %48, align 8
  %57 = zext i1 %2 to i8
  store i8 %57, i8* %init, align 1
  store %"alloc::alloc::Global"* %self, %"alloc::alloc::Global"** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata %"alloc::alloc::Global"** %self.dbg.spill, metadata !726, metadata !DIExpression()), !dbg !740
  call void @llvm.dbg.declare(metadata i8* %init, metadata !728, metadata !DIExpression()), !dbg !741
  call void @llvm.dbg.declare(metadata i8** %raw_ptr, metadata !731, metadata !DIExpression()), !dbg !742
  call void @llvm.dbg.declare(metadata %"core::alloc::AllocErr"* %err.dbg.spill, metadata !735, metadata !DIExpression()), !dbg !743
; call core::alloc::layout::Layout::size
  %size = call i64 @_ZN4core5alloc6layout6Layout4size17h853e5eb674a4bb50E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %23), !dbg !744
  store i64 %size, i64* %size.dbg.spill, align 8, !dbg !744
  call void @llvm.dbg.declare(metadata i64* %size.dbg.spill, metadata !729, metadata !DIExpression()), !dbg !745
  br label %bb1, !dbg !744

bb1:                                              ; preds = %56
  %_6 = icmp eq i64 %size, 0, !dbg !746
  br i1 %_6, label %bb3, label %bb2, !dbg !747

bb2:                                              ; preds = %bb1
  %58 = bitcast i8** %raw_ptr to i8*, !dbg !748
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %58), !dbg !748
  %59 = load i8, i8* %init, align 1, !dbg !749, !range !222
  %60 = trunc i8 %59 to i1, !dbg !749
  %_12 = zext i1 %60 to i64, !dbg !749
  switch i64 %_12, label %bb6 [
    i64 0, label %bb7
    i64 1, label %bb5
  ], !dbg !749

bb3:                                              ; preds = %bb1
  %61 = bitcast { i8*, i64 }* %19 to i8*, !dbg !750
  %62 = add i64 %30, 12, !dbg !750
  %63 = inttoptr i64 %62 to i16*, !dbg !750
  store i16 0, i16* %63, align 1, !dbg !750
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %61), !dbg !750
; call core::alloc::layout::Layout::dangling
  %_9 = call nonnull i8* @_ZN4core5alloc6layout6Layout8dangling17ha2a7c7b40a8768d2E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %23), !dbg !751
  br label %bb4, !dbg !751

bb4:                                              ; preds = %bb3
  %64 = bitcast { i8*, i64 }* %19 to i8**, !dbg !750
  %65 = ptrtoint i8** %64 to i64, !dbg !750
  %66 = lshr i64 %65, 3, !dbg !750
  %67 = add i64 %66, 2147450880, !dbg !750
  %68 = inttoptr i64 %67 to i8*, !dbg !750
  %69 = load i8, i8* %68, !dbg !750
  %70 = icmp ne i8 %69, 0, !dbg !750
  br i1 %70, label %71, label %72, !dbg !750

71:                                               ; preds = %bb4
  call void @__asan_report_store8(i64 %65), !dbg !750
  call void asm sideeffect "", ""(), !dbg !750
  unreachable, !dbg !750

72:                                               ; preds = %bb4
  store i8* %_9, i8** %64, align 8, !dbg !750
  %73 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %19, i32 0, i32 1, !dbg !750
  %74 = ptrtoint i64* %73 to i64, !dbg !750
  %75 = lshr i64 %74, 3, !dbg !750
  %76 = add i64 %75, 2147450880, !dbg !750
  %77 = inttoptr i64 %76 to i8*, !dbg !750
  %78 = load i8, i8* %77, !dbg !750
  %79 = icmp ne i8 %78, 0, !dbg !750
  br i1 %79, label %80, label %81, !dbg !750

80:                                               ; preds = %72
  call void @__asan_report_store8(i64 %74), !dbg !750
  call void asm sideeffect "", ""(), !dbg !750
  unreachable, !dbg !750

81:                                               ; preds = %72
  store i64 0, i64* %73, align 8, !dbg !750
  %82 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %19, i32 0, i32 0, !dbg !752
  %83 = ptrtoint i8** %82 to i64, !dbg !752
  %84 = lshr i64 %83, 3, !dbg !752
  %85 = add i64 %84, 2147450880, !dbg !752
  %86 = inttoptr i64 %85 to i8*, !dbg !752
  %87 = load i8, i8* %86, !dbg !752
  %88 = icmp ne i8 %87, 0, !dbg !752
  br i1 %88, label %89, label %90, !dbg !752

89:                                               ; preds = %81
  call void @__asan_report_load8(i64 %83), !dbg !752
  call void asm sideeffect "", ""(), !dbg !752
  unreachable, !dbg !752

90:                                               ; preds = %81
  %91 = load i8*, i8** %82, align 8, !dbg !752, !nonnull !4
  %92 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %19, i32 0, i32 1, !dbg !752
  %93 = ptrtoint i64* %92 to i64, !dbg !752
  %94 = lshr i64 %93, 3, !dbg !752
  %95 = add i64 %94, 2147450880, !dbg !752
  %96 = inttoptr i64 %95 to i8*, !dbg !752
  %97 = load i8, i8* %96, !dbg !752
  %98 = icmp ne i8 %97, 0, !dbg !752
  br i1 %98, label %99, label %100, !dbg !752

99:                                               ; preds = %90
  call void @__asan_report_load8(i64 %93), !dbg !752
  call void asm sideeffect "", ""(), !dbg !752
  unreachable, !dbg !752

100:                                              ; preds = %90
  %101 = load i64, i64* %92, align 8, !dbg !752
  %102 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %21, i32 0, i32 0, !dbg !752
  %103 = ptrtoint i8** %102 to i64, !dbg !752
  %104 = lshr i64 %103, 3, !dbg !752
  %105 = add i64 %104, 2147450880, !dbg !752
  %106 = inttoptr i64 %105 to i8*, !dbg !752
  %107 = load i8, i8* %106, !dbg !752
  %108 = icmp ne i8 %107, 0, !dbg !752
  br i1 %108, label %109, label %110, !dbg !752

109:                                              ; preds = %100
  call void @__asan_report_store8(i64 %103), !dbg !752
  call void asm sideeffect "", ""(), !dbg !752
  unreachable, !dbg !752

110:                                              ; preds = %100
  store i8* %91, i8** %102, align 8, !dbg !752
  %111 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %21, i32 0, i32 1, !dbg !752
  %112 = ptrtoint i64* %111 to i64, !dbg !752
  %113 = lshr i64 %112, 3, !dbg !752
  %114 = add i64 %113, 2147450880, !dbg !752
  %115 = inttoptr i64 %114 to i8*, !dbg !752
  %116 = load i8, i8* %115, !dbg !752
  %117 = icmp ne i8 %116, 0, !dbg !752
  br i1 %117, label %118, label %119, !dbg !752

118:                                              ; preds = %110
  call void @__asan_report_store8(i64 %112), !dbg !752
  call void asm sideeffect "", ""(), !dbg !752
  unreachable, !dbg !752

119:                                              ; preds = %110
  store i64 %101, i64* %111, align 8, !dbg !752
  %120 = bitcast { i8*, i64 }* %19 to i8*, !dbg !753
  %121 = add i64 %30, 12, !dbg !753
  %122 = inttoptr i64 %121 to i16*, !dbg !753
  store i16 -1800, i16* %122, align 1, !dbg !753
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %120), !dbg !753
  br label %bb20, !dbg !747

bb5:                                              ; preds = %bb2
  %123 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %23, i32 0, i32 0, !dbg !754
  %124 = ptrtoint i64* %123 to i64, !dbg !754
  %125 = lshr i64 %124, 3, !dbg !754
  %126 = add i64 %125, 2147450880, !dbg !754
  %127 = inttoptr i64 %126 to i8*, !dbg !754
  %128 = load i8, i8* %127, !dbg !754
  %129 = icmp ne i8 %128, 0, !dbg !754
  br i1 %129, label %130, label %131, !dbg !754

130:                                              ; preds = %bb5
  call void @__asan_report_load8(i64 %124), !dbg !754
  call void asm sideeffect "", ""(), !dbg !754
  unreachable, !dbg !754

131:                                              ; preds = %bb5
  %_14.0 = load i64, i64* %123, align 8, !dbg !754
  %132 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %23, i32 0, i32 1, !dbg !754
  %133 = ptrtoint i64* %132 to i64, !dbg !754
  %134 = lshr i64 %133, 3, !dbg !754
  %135 = add i64 %134, 2147450880, !dbg !754
  %136 = inttoptr i64 %135 to i8*, !dbg !754
  %137 = load i8, i8* %136, !dbg !754
  %138 = icmp ne i8 %137, 0, !dbg !754
  br i1 %138, label %139, label %140, !dbg !754

139:                                              ; preds = %131
  call void @__asan_report_load8(i64 %133), !dbg !754
  call void asm sideeffect "", ""(), !dbg !754
  unreachable, !dbg !754

140:                                              ; preds = %131
  %_14.1 = load i64, i64* %132, align 8, !dbg !754, !range !310
; call alloc::alloc::alloc_zeroed
  %141 = call i8* @_ZN5alloc5alloc12alloc_zeroed17hdb06d12151589786E(i64 %_14.0, i64 %_14.1), !dbg !755
  store i8* %141, i8** %raw_ptr, align 8, !dbg !755
  br label %bb9, !dbg !755

bb6:                                              ; preds = %bb2
  unreachable, !dbg !756

bb7:                                              ; preds = %bb2
  %142 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %23, i32 0, i32 0, !dbg !757
  %143 = ptrtoint i64* %142 to i64, !dbg !757
  %144 = lshr i64 %143, 3, !dbg !757
  %145 = add i64 %144, 2147450880, !dbg !757
  %146 = inttoptr i64 %145 to i8*, !dbg !757
  %147 = load i8, i8* %146, !dbg !757
  %148 = icmp ne i8 %147, 0, !dbg !757
  br i1 %148, label %149, label %150, !dbg !757

149:                                              ; preds = %bb7
  call void @__asan_report_load8(i64 %143), !dbg !757
  call void asm sideeffect "", ""(), !dbg !757
  unreachable, !dbg !757

150:                                              ; preds = %bb7
  %_13.0 = load i64, i64* %142, align 8, !dbg !757
  %151 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %23, i32 0, i32 1, !dbg !757
  %152 = ptrtoint i64* %151 to i64, !dbg !757
  %153 = lshr i64 %152, 3, !dbg !757
  %154 = add i64 %153, 2147450880, !dbg !757
  %155 = inttoptr i64 %154 to i8*, !dbg !757
  %156 = load i8, i8* %155, !dbg !757
  %157 = icmp ne i8 %156, 0, !dbg !757
  br i1 %157, label %158, label %159, !dbg !757

158:                                              ; preds = %150
  call void @__asan_report_load8(i64 %152), !dbg !757
  call void asm sideeffect "", ""(), !dbg !757
  unreachable, !dbg !757

159:                                              ; preds = %150
  %_13.1 = load i64, i64* %151, align 8, !dbg !757, !range !310
; call alloc::alloc::alloc
  %160 = call i8* @_ZN5alloc5alloc5alloc17h7526c48bac8f90ebE(i64 %_13.0, i64 %_13.1), !dbg !758
  store i8* %160, i8** %raw_ptr, align 8, !dbg !758
  br label %bb8, !dbg !758

bb8:                                              ; preds = %159
  br label %bb10, !dbg !759

bb9:                                              ; preds = %140
  br label %bb10, !dbg !759

bb10:                                             ; preds = %bb8, %bb9
  %161 = bitcast i8** %17 to i8*, !dbg !760
  %162 = add i64 %30, 8, !dbg !760
  %163 = inttoptr i64 %162 to i8*, !dbg !760
  store i8 0, i8* %163, align 1, !dbg !760
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %161), !dbg !760
  %_19 = load i8*, i8** %raw_ptr, align 8, !dbg !761
; call core::ptr::non_null::NonNull<T>::new
  %_18 = call i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$3new17h8d677d68afef3a01E"(i8* %_19), !dbg !760
  br label %bb11, !dbg !760

bb11:                                             ; preds = %bb10
; call core::option::Option<T>::ok_or
  %_17 = call i8* @"_ZN4core6option15Option$LT$T$GT$5ok_or17h1ccd596f1af40427E"(i8* %_18), !dbg !760
  br label %bb12, !dbg !760

bb12:                                             ; preds = %bb11
; call <core::result::Result<T,E> as core::ops::try::Try>::into_result
  %164 = call i8* @"_ZN73_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h19b933b92aaa401eE"(i8* %_17), !dbg !760
  %165 = ptrtoint i8** %17 to i64, !dbg !760
  %166 = lshr i64 %165, 3, !dbg !760
  %167 = add i64 %166, 2147450880, !dbg !760
  %168 = inttoptr i64 %167 to i8*, !dbg !760
  %169 = load i8, i8* %168, !dbg !760
  %170 = icmp ne i8 %169, 0, !dbg !760
  br i1 %170, label %171, label %172, !dbg !760

171:                                              ; preds = %bb12
  call void @__asan_report_store8(i64 %165), !dbg !760
  call void asm sideeffect "", ""(), !dbg !760
  unreachable, !dbg !760

172:                                              ; preds = %bb12
  store i8* %164, i8** %17, align 8, !dbg !760
  br label %bb13, !dbg !760

bb13:                                             ; preds = %172
  %173 = bitcast i8** %17 to {}**, !dbg !762
  %174 = ptrtoint {}** %173 to i64, !dbg !762
  %175 = lshr i64 %174, 3, !dbg !762
  %176 = add i64 %175, 2147450880, !dbg !762
  %177 = inttoptr i64 %176 to i8*, !dbg !762
  %178 = load i8, i8* %177, !dbg !762
  %179 = icmp ne i8 %178, 0, !dbg !762
  br i1 %179, label %180, label %181, !dbg !762

180:                                              ; preds = %bb13
  call void @__asan_report_load8(i64 %174), !dbg !762
  call void asm sideeffect "", ""(), !dbg !762
  unreachable, !dbg !762

181:                                              ; preds = %bb13
  %182 = load {}*, {}** %173, align 8, !dbg !762
  %183 = icmp ule {}* %182, null, !dbg !762
  %_21 = select i1 %183, i64 1, i64 0, !dbg !762
  switch i64 %_21, label %bb15 [
    i64 0, label %bb14
    i64 1, label %bb16
  ], !dbg !762

bb14:                                             ; preds = %181
  %184 = ptrtoint i8** %17 to i64, !dbg !760
  %185 = lshr i64 %184, 3, !dbg !760
  %186 = add i64 %185, 2147450880, !dbg !760
  %187 = inttoptr i64 %186 to i8*, !dbg !760
  %188 = load i8, i8* %187, !dbg !760
  %189 = icmp ne i8 %188, 0, !dbg !760
  br i1 %189, label %190, label %191, !dbg !760

190:                                              ; preds = %bb14
  call void @__asan_report_load8(i64 %184), !dbg !760
  call void asm sideeffect "", ""(), !dbg !760
  unreachable, !dbg !760

191:                                              ; preds = %bb14
  %val = load i8*, i8** %17, align 8, !dbg !760, !nonnull !4
  store i8* %val, i8** %val.dbg.spill, align 8, !dbg !760
  call void @llvm.dbg.declare(metadata i8** %val.dbg.spill, metadata !737, metadata !DIExpression()), !dbg !763
  store i8* %val, i8** %ptr.dbg.spill, align 8, !dbg !763
  call void @llvm.dbg.declare(metadata i8** %ptr.dbg.spill, metadata !733, metadata !DIExpression()), !dbg !764
  %192 = bitcast i8** %17 to i8*, !dbg !765
  %193 = add i64 %30, 8, !dbg !765
  %194 = inttoptr i64 %193 to i8*, !dbg !765
  store i8 -8, i8* %194, align 1, !dbg !765
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %192), !dbg !765
  %195 = bitcast { i8*, i64 }* %15 to i8*, !dbg !766
  %196 = add i64 %30, 4, !dbg !766
  %197 = inttoptr i64 %196 to i16*, !dbg !766
  store i16 0, i16* %197, align 1, !dbg !766
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %195), !dbg !766
  %198 = bitcast { i8*, i64 }* %15 to i8**, !dbg !766
  %199 = ptrtoint i8** %198 to i64, !dbg !766
  %200 = lshr i64 %199, 3, !dbg !766
  %201 = add i64 %200, 2147450880, !dbg !766
  %202 = inttoptr i64 %201 to i8*, !dbg !766
  %203 = load i8, i8* %202, !dbg !766
  %204 = icmp ne i8 %203, 0, !dbg !766
  br i1 %204, label %205, label %206, !dbg !766

205:                                              ; preds = %191
  call void @__asan_report_store8(i64 %199), !dbg !766
  call void asm sideeffect "", ""(), !dbg !766
  unreachable, !dbg !766

206:                                              ; preds = %191
  store i8* %val, i8** %198, align 8, !dbg !766
  %207 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %15, i32 0, i32 1, !dbg !766
  %208 = ptrtoint i64* %207 to i64, !dbg !766
  %209 = lshr i64 %208, 3, !dbg !766
  %210 = add i64 %209, 2147450880, !dbg !766
  %211 = inttoptr i64 %210 to i8*, !dbg !766
  %212 = load i8, i8* %211, !dbg !766
  %213 = icmp ne i8 %212, 0, !dbg !766
  br i1 %213, label %214, label %215, !dbg !766

214:                                              ; preds = %206
  call void @__asan_report_store8(i64 %208), !dbg !766
  call void asm sideeffect "", ""(), !dbg !766
  unreachable, !dbg !766

215:                                              ; preds = %206
  store i64 %size, i64* %207, align 8, !dbg !766
  %216 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %15, i32 0, i32 0, !dbg !767
  %217 = ptrtoint i8** %216 to i64, !dbg !767
  %218 = lshr i64 %217, 3, !dbg !767
  %219 = add i64 %218, 2147450880, !dbg !767
  %220 = inttoptr i64 %219 to i8*, !dbg !767
  %221 = load i8, i8* %220, !dbg !767
  %222 = icmp ne i8 %221, 0, !dbg !767
  br i1 %222, label %223, label %224, !dbg !767

223:                                              ; preds = %215
  call void @__asan_report_load8(i64 %217), !dbg !767
  call void asm sideeffect "", ""(), !dbg !767
  unreachable, !dbg !767

224:                                              ; preds = %215
  %225 = load i8*, i8** %216, align 8, !dbg !767, !nonnull !4
  %226 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %15, i32 0, i32 1, !dbg !767
  %227 = ptrtoint i64* %226 to i64, !dbg !767
  %228 = lshr i64 %227, 3, !dbg !767
  %229 = add i64 %228, 2147450880, !dbg !767
  %230 = inttoptr i64 %229 to i8*, !dbg !767
  %231 = load i8, i8* %230, !dbg !767
  %232 = icmp ne i8 %231, 0, !dbg !767
  br i1 %232, label %233, label %234, !dbg !767

233:                                              ; preds = %224
  call void @__asan_report_load8(i64 %227), !dbg !767
  call void asm sideeffect "", ""(), !dbg !767
  unreachable, !dbg !767

234:                                              ; preds = %224
  %235 = load i64, i64* %226, align 8, !dbg !767
  %236 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %21, i32 0, i32 0, !dbg !767
  %237 = ptrtoint i8** %236 to i64, !dbg !767
  %238 = lshr i64 %237, 3, !dbg !767
  %239 = add i64 %238, 2147450880, !dbg !767
  %240 = inttoptr i64 %239 to i8*, !dbg !767
  %241 = load i8, i8* %240, !dbg !767
  %242 = icmp ne i8 %241, 0, !dbg !767
  br i1 %242, label %243, label %244, !dbg !767

243:                                              ; preds = %234
  call void @__asan_report_store8(i64 %237), !dbg !767
  call void asm sideeffect "", ""(), !dbg !767
  unreachable, !dbg !767

244:                                              ; preds = %234
  store i8* %225, i8** %236, align 8, !dbg !767
  %245 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %21, i32 0, i32 1, !dbg !767
  %246 = ptrtoint i64* %245 to i64, !dbg !767
  %247 = lshr i64 %246, 3, !dbg !767
  %248 = add i64 %247, 2147450880, !dbg !767
  %249 = inttoptr i64 %248 to i8*, !dbg !767
  %250 = load i8, i8* %249, !dbg !767
  %251 = icmp ne i8 %250, 0, !dbg !767
  br i1 %251, label %252, label %253, !dbg !767

252:                                              ; preds = %244
  call void @__asan_report_store8(i64 %246), !dbg !767
  call void asm sideeffect "", ""(), !dbg !767
  unreachable, !dbg !767

253:                                              ; preds = %244
  store i64 %235, i64* %245, align 8, !dbg !767
  %254 = bitcast { i8*, i64 }* %15 to i8*, !dbg !768
  %255 = add i64 %30, 4, !dbg !768
  %256 = inttoptr i64 %255 to i16*, !dbg !768
  store i16 -1800, i16* %256, align 1, !dbg !768
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %254), !dbg !768
  %257 = bitcast i8** %raw_ptr to i8*, !dbg !769
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %257), !dbg !769
  br label %bb20, !dbg !747

bb15:                                             ; preds = %181
  unreachable, !dbg !760

bb16:                                             ; preds = %181
; call <T as core::convert::From<T>>::from
  call void @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h3e8a6cda4bb505a6E"(), !dbg !743
  br label %bb18, !dbg !743

bb17:                                             ; preds = %bb20, %bb19
  %258 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %21, i32 0, i32 0, !dbg !770
  %259 = ptrtoint i8** %258 to i64, !dbg !770
  %260 = lshr i64 %259, 3, !dbg !770
  %261 = add i64 %260, 2147450880, !dbg !770
  %262 = inttoptr i64 %261 to i8*, !dbg !770
  %263 = load i8, i8* %262, !dbg !770
  %264 = icmp ne i8 %263, 0, !dbg !770
  br i1 %264, label %265, label %266, !dbg !770

265:                                              ; preds = %bb17
  call void @__asan_report_load8(i64 %259), !dbg !770
  call void asm sideeffect "", ""(), !dbg !770
  unreachable, !dbg !770

266:                                              ; preds = %bb17
  %267 = load i8*, i8** %258, align 8, !dbg !770
  %268 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %21, i32 0, i32 1, !dbg !770
  %269 = ptrtoint i64* %268 to i64, !dbg !770
  %270 = lshr i64 %269, 3, !dbg !770
  %271 = add i64 %270, 2147450880, !dbg !770
  %272 = inttoptr i64 %271 to i8*, !dbg !770
  %273 = load i8, i8* %272, !dbg !770
  %274 = icmp ne i8 %273, 0, !dbg !770
  br i1 %274, label %275, label %276, !dbg !770

275:                                              ; preds = %266
  call void @__asan_report_load8(i64 %269), !dbg !770
  call void asm sideeffect "", ""(), !dbg !770
  unreachable, !dbg !770

276:                                              ; preds = %266
  %277 = load i64, i64* %268, align 8, !dbg !770
  %278 = insertvalue { i8*, i64 } undef, i8* %267, 0, !dbg !770
  %279 = insertvalue { i8*, i64 } %278, i64 %277, 1, !dbg !770
  store i64 1172321806, i64* %24, !dbg !770
  %280 = icmp ne i64 %8, 0, !dbg !770
  br i1 %280, label %281, label %294, !dbg !770

281:                                              ; preds = %276
  %282 = add i64 %30, 0, !dbg !770
  %283 = inttoptr i64 %282 to i64*, !dbg !770
  store i64 -723401728380766731, i64* %283, align 1, !dbg !770
  %284 = add i64 %30, 8, !dbg !770
  %285 = inttoptr i64 %284 to i64*, !dbg !770
  store i64 -723401728380766731, i64* %285, align 1, !dbg !770
  %286 = add i64 %30, 16, !dbg !770
  %287 = inttoptr i64 %286 to i64*, !dbg !770
  store i64 -723401728380766731, i64* %287, align 1, !dbg !770
  %288 = add i64 %30, 24, !dbg !770
  %289 = inttoptr i64 %288 to i64*, !dbg !770
  store i64 -723401728380766731, i64* %289, align 1, !dbg !770
  %290 = add i64 %8, 248, !dbg !770
  %291 = inttoptr i64 %290 to i64*, !dbg !770
  %292 = load i64, i64* %291, !dbg !770
  %293 = inttoptr i64 %292 to i8*, !dbg !770
  store i8 0, i8* %293, !dbg !770
  br label %303, !dbg !770

294:                                              ; preds = %276
  %295 = add i64 %30, 0, !dbg !770
  %296 = inttoptr i64 %295 to i64*, !dbg !770
  store i64 0, i64* %296, align 1, !dbg !770
  %297 = add i64 %30, 8, !dbg !770
  %298 = inttoptr i64 %297 to i64*, !dbg !770
  store i64 0, i64* %298, align 1, !dbg !770
  %299 = add i64 %30, 18, !dbg !770
  %300 = inttoptr i64 %299 to i16*, !dbg !770
  store i16 0, i16* %300, align 1, !dbg !770
  %301 = add i64 %30, 22, !dbg !770
  %302 = inttoptr i64 %301 to i16*, !dbg !770
  store i16 0, i16* %302, align 1, !dbg !770
  br label %303, !dbg !770

303:                                              ; preds = %294, %281
  ret { i8*, i64 } %279, !dbg !770

bb18:                                             ; preds = %bb16
; call <core::result::Result<T,E> as core::ops::try::Try>::from_error
  %304 = call { i8*, i64 } @"_ZN73_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17hd511df3d9e5a4409E"(), !dbg !743
  %305 = ptrtoint { i8*, i64 }* %21 to i64, !dbg !743
  %306 = lshr i64 %305, 3, !dbg !743
  %307 = add i64 %306, 2147450880, !dbg !743
  %308 = inttoptr i64 %307 to i16*, !dbg !743
  %309 = load i16, i16* %308, !dbg !743
  %310 = icmp ne i16 %309, 0, !dbg !743
  br i1 %310, label %311, label %312, !dbg !743

311:                                              ; preds = %bb18
  call void @__asan_report_store16(i64 %305), !dbg !743
  call void asm sideeffect "", ""(), !dbg !743
  unreachable, !dbg !743

312:                                              ; preds = %bb18
  store { i8*, i64 } %304, { i8*, i64 }* %21, align 8, !dbg !743
  br label %bb19, !dbg !743

bb19:                                             ; preds = %312
  %313 = bitcast i8** %17 to i8*, !dbg !765
  %314 = add i64 %30, 8, !dbg !765
  %315 = inttoptr i64 %314 to i8*, !dbg !765
  store i8 -8, i8* %315, align 1, !dbg !765
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %313), !dbg !765
  %316 = bitcast i8** %raw_ptr to i8*, !dbg !769
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %316), !dbg !769
  br label %bb17, !dbg !771

bb20:                                             ; preds = %253, %119
  br label %bb17, !dbg !770
}

; <alloc::alloc::Global as core::alloc::AllocRef>::dealloc
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal void @"_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$7dealloc17h03eb740b36c31772E"(%"alloc::alloc::Global"* nonnull align 1 %self, i8* nonnull %ptr, i64 %0, i64 %1) unnamed_addr #0 !dbg !772 {
start:
  %ptr.dbg.spill = alloca i8*, align 8
  %self.dbg.spill = alloca %"alloc::alloc::Global"*, align 8
  %2 = alloca {}, align 1
  %asan_local_stack_base = alloca i64
  %3 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %4 = icmp ne i32 %3, 0
  br i1 %4, label %5, label %7

5:                                                ; preds = %start
  %6 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %7

7:                                                ; preds = %start, %5
  %8 = phi i64 [ 0, %start ], [ %6, %5 ]
  %9 = icmp eq i64 %8, 0
  br i1 %9, label %10, label %12

10:                                               ; preds = %7
  %MyAlloca = alloca i8, i64 64, align 32
  %11 = ptrtoint i8* %MyAlloca to i64
  br label %12

12:                                               ; preds = %7, %10
  %13 = phi i64 [ %8, %7 ], [ %11, %10 ]
  store i64 %13, i64* %asan_local_stack_base
  %14 = add i64 %13, 32
  %15 = inttoptr i64 %14 to { i64, i64 }*
  %16 = inttoptr i64 %13 to i64*
  store i64 1102416563, i64* %16
  %17 = add i64 %13, 8
  %18 = inttoptr i64 %17 to i64*
  store i64 ptrtoint ([17 x i8]* @___asan_gen_.16 to i64), i64* %18
  %19 = add i64 %13, 16
  %20 = inttoptr i64 %19 to i64*
  store i64 ptrtoint (void (%"alloc::alloc::Global"*, i8*, i64, i64)* @"_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$7dealloc17h03eb740b36c31772E" to i64), i64* %20
  %21 = lshr i64 %13, 3
  %22 = add i64 %21, 2147450880
  %23 = add i64 %22, 0
  %24 = inttoptr i64 %23 to i64*
  store i64 -868350299093208591, i64* %24, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !778, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !779
  %25 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %15, i32 0, i32 0
  %26 = ptrtoint i64* %25 to i64
  %27 = lshr i64 %26, 3
  %28 = add i64 %27, 2147450880
  %29 = inttoptr i64 %28 to i8*
  %30 = load i8, i8* %29
  %31 = icmp ne i8 %30, 0
  br i1 %31, label %32, label %33

32:                                               ; preds = %12
  call void @__asan_report_store8(i64 %26)
  call void asm sideeffect "", ""()
  unreachable

33:                                               ; preds = %12
  store i64 %0, i64* %25, align 8
  %34 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %15, i32 0, i32 1
  %35 = ptrtoint i64* %34 to i64
  %36 = lshr i64 %35, 3
  %37 = add i64 %36, 2147450880
  %38 = inttoptr i64 %37 to i8*
  %39 = load i8, i8* %38
  %40 = icmp ne i8 %39, 0
  br i1 %40, label %41, label %42

41:                                               ; preds = %33
  call void @__asan_report_store8(i64 %35)
  call void asm sideeffect "", ""()
  unreachable

42:                                               ; preds = %33
  store i64 %1, i64* %34, align 8
  store %"alloc::alloc::Global"* %self, %"alloc::alloc::Global"** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata %"alloc::alloc::Global"** %self.dbg.spill, metadata !776, metadata !DIExpression()), !dbg !780
  store i8* %ptr, i8** %ptr.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %ptr.dbg.spill, metadata !777, metadata !DIExpression()), !dbg !781
; call core::alloc::layout::Layout::size
  %_5 = call i64 @_ZN4core5alloc6layout6Layout4size17h853e5eb674a4bb50E({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %15), !dbg !782
  br label %bb1, !dbg !782

bb1:                                              ; preds = %42
  %_4 = icmp ne i64 %_5, 0, !dbg !782
  br i1 %_4, label %bb3, label %bb2, !dbg !783

bb2:                                              ; preds = %bb1
  br label %bb6, !dbg !783

bb3:                                              ; preds = %bb1
; call core::ptr::non_null::NonNull<T>::as_ptr
  %_7 = call i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h3236d5ce7b72e6c9E"(i8* nonnull %ptr), !dbg !784
  br label %bb4, !dbg !784

bb4:                                              ; preds = %bb3
  %43 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %15, i32 0, i32 0, !dbg !785
  %44 = ptrtoint i64* %43 to i64, !dbg !785
  %45 = lshr i64 %44, 3, !dbg !785
  %46 = add i64 %45, 2147450880, !dbg !785
  %47 = inttoptr i64 %46 to i8*, !dbg !785
  %48 = load i8, i8* %47, !dbg !785
  %49 = icmp ne i8 %48, 0, !dbg !785
  br i1 %49, label %50, label %51, !dbg !785

50:                                               ; preds = %bb4
  call void @__asan_report_load8(i64 %44), !dbg !785
  call void asm sideeffect "", ""(), !dbg !785
  unreachable, !dbg !785

51:                                               ; preds = %bb4
  %_9.0 = load i64, i64* %43, align 8, !dbg !785
  %52 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %15, i32 0, i32 1, !dbg !785
  %53 = ptrtoint i64* %52 to i64, !dbg !785
  %54 = lshr i64 %53, 3, !dbg !785
  %55 = add i64 %54, 2147450880, !dbg !785
  %56 = inttoptr i64 %55 to i8*, !dbg !785
  %57 = load i8, i8* %56, !dbg !785
  %58 = icmp ne i8 %57, 0, !dbg !785
  br i1 %58, label %59, label %60, !dbg !785

59:                                               ; preds = %51
  call void @__asan_report_load8(i64 %53), !dbg !785
  call void asm sideeffect "", ""(), !dbg !785
  unreachable, !dbg !785

60:                                               ; preds = %51
  %_9.1 = load i64, i64* %52, align 8, !dbg !785, !range !310
; call alloc::alloc::dealloc
  call void @_ZN5alloc5alloc7dealloc17h0e6f83fc63dc537eE(i8* %_7, i64 %_9.0, i64 %_9.1), !dbg !786
  br label %bb5, !dbg !786

bb5:                                              ; preds = %60
  br label %bb6, !dbg !783

bb6:                                              ; preds = %bb2, %bb5
  store i64 1172321806, i64* %16, !dbg !787
  %61 = icmp ne i64 %8, 0, !dbg !787
  br i1 %61, label %62, label %69, !dbg !787

62:                                               ; preds = %bb6
  %63 = add i64 %22, 0, !dbg !787
  %64 = inttoptr i64 %63 to i64*, !dbg !787
  store i64 -723401728380766731, i64* %64, align 1, !dbg !787
  %65 = add i64 %8, 56, !dbg !787
  %66 = inttoptr i64 %65 to i64*, !dbg !787
  %67 = load i64, i64* %66, !dbg !787
  %68 = inttoptr i64 %67 to i8*, !dbg !787
  store i8 0, i8* %68, !dbg !787
  br label %72, !dbg !787

69:                                               ; preds = %bb6
  %70 = add i64 %22, 0, !dbg !787
  %71 = inttoptr i64 %70 to i64*, !dbg !787
  store i64 0, i64* %71, align 1, !dbg !787
  br label %72, !dbg !787

72:                                               ; preds = %69, %62
  ret void, !dbg !787
}

; <std::process::ExitCode as std::process::Termination>::report
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i32 @"_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17h24744b84e9ac7fd6E"(i8 %0) unnamed_addr #0 !dbg !788 {
start:
  %asan_local_stack_base = alloca i64
  %1 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %2 = icmp ne i32 %1, 0
  br i1 %2, label %3, label %5

3:                                                ; preds = %start
  %4 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %5

5:                                                ; preds = %start, %3
  %6 = phi i64 [ 0, %start ], [ %4, %3 ]
  %7 = icmp eq i64 %6, 0
  br i1 %7, label %8, label %10

8:                                                ; preds = %5
  %MyAlloca = alloca i8, i64 64, align 32
  %9 = ptrtoint i8* %MyAlloca to i64
  br label %10

10:                                               ; preds = %5, %8
  %11 = phi i64 [ %6, %5 ], [ %9, %8 ]
  store i64 %11, i64* %asan_local_stack_base
  %12 = add i64 %11, 32
  %13 = inttoptr i64 %12 to i8*
  %14 = inttoptr i64 %11 to i64*
  store i64 1102416563, i64* %14
  %15 = add i64 %11, 8
  %16 = inttoptr i64 %15 to i64*
  store i64 ptrtoint ([14 x i8]* @___asan_gen_.17 to i64), i64* %16
  %17 = add i64 %11, 16
  %18 = inttoptr i64 %17 to i64*
  store i64 ptrtoint (i32 (i8)* @"_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17h24744b84e9ac7fd6E" to i64), i64* %18
  %19 = lshr i64 %11, 3
  %20 = add i64 %19, 2147450880
  %21 = add i64 %20, 0
  %22 = inttoptr i64 %21 to i64*
  store i64 -868083113472691727, i64* %22, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !795, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !796
  %23 = ptrtoint i8* %13 to i64
  %24 = lshr i64 %23, 3
  %25 = add i64 %24, 2147450880
  %26 = inttoptr i64 %25 to i8*
  %27 = load i8, i8* %26
  %28 = icmp ne i8 %27, 0
  br i1 %28, label %29, label %34, !prof !139

29:                                               ; preds = %10
  %30 = and i64 %23, 7
  %31 = trunc i64 %30 to i8
  %32 = icmp sge i8 %31, %27
  br i1 %32, label %33, label %34

33:                                               ; preds = %29
  call void @__asan_report_store1(i64 %23)
  call void asm sideeffect "", ""()
  unreachable

34:                                               ; preds = %29, %10
  store i8 %0, i8* %13, align 1
; call std::sys::unix::process::process_common::ExitCode::as_i32
  %35 = call i32 @_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217hb308a870ec7ca366E(i8* noalias readonly align 1 dereferenceable(1) %13), !dbg !797
  br label %bb1, !dbg !797

bb1:                                              ; preds = %34
  store i64 1172321806, i64* %14, !dbg !798
  %36 = icmp ne i64 %6, 0, !dbg !798
  br i1 %36, label %37, label %44, !dbg !798

37:                                               ; preds = %bb1
  %38 = add i64 %20, 0, !dbg !798
  %39 = inttoptr i64 %38 to i64*, !dbg !798
  store i64 -723401728380766731, i64* %39, align 1, !dbg !798
  %40 = add i64 %6, 56, !dbg !798
  %41 = inttoptr i64 %40 to i64*, !dbg !798
  %42 = load i64, i64* %41, !dbg !798
  %43 = inttoptr i64 %42 to i8*, !dbg !798
  store i8 0, i8* %43, !dbg !798
  br label %47, !dbg !798

44:                                               ; preds = %bb1
  %45 = add i64 %20, 0, !dbg !798
  %46 = inttoptr i64 %45 to i64*, !dbg !798
  store i64 0, i64* %46, align 1, !dbg !798
  br label %47, !dbg !798

47:                                               ; preds = %44, %37
  ret i32 %35, !dbg !798
}

; <core::result::Result<T,E> as core::ops::try::Try>::from_error
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal { i8*, i64 } @"_ZN73_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17hd511df3d9e5a4409E"() unnamed_addr #0 !dbg !799 {
start:
  %v.dbg.spill = alloca %"core::alloc::AllocErr", align 1
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 64, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to { i8*, i64 }*
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([11 x i8]* @___asan_gen_.18 to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ({ i8*, i64 } ()* @"_ZN73_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17hd511df3d9e5a4409E" to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -868350299093208591, i64* %21, align 1
  call void @llvm.dbg.declare(metadata %"core::alloc::AllocErr"* %v.dbg.spill, metadata !805, metadata !DIExpression()), !dbg !806
  %22 = bitcast { i8*, i64 }* %12 to %"core::result::Result<core::alloc::MemoryBlock, core::alloc::AllocErr>::Err"*, !dbg !807
  %23 = bitcast %"core::result::Result<core::alloc::MemoryBlock, core::alloc::AllocErr>::Err"* %22 to %"core::alloc::AllocErr"*, !dbg !807
  %24 = bitcast { i8*, i64 }* %12 to {}**, !dbg !807
  %25 = ptrtoint {}** %24 to i64, !dbg !807
  %26 = lshr i64 %25, 3, !dbg !807
  %27 = add i64 %26, 2147450880, !dbg !807
  %28 = inttoptr i64 %27 to i8*, !dbg !807
  %29 = load i8, i8* %28, !dbg !807
  %30 = icmp ne i8 %29, 0, !dbg !807
  br i1 %30, label %31, label %32, !dbg !807

31:                                               ; preds = %9
  call void @__asan_report_store8(i64 %25), !dbg !807
  call void asm sideeffect "", ""(), !dbg !807
  unreachable, !dbg !807

32:                                               ; preds = %9
  store {}* null, {}** %24, align 8, !dbg !807
  %33 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %12, i32 0, i32 0, !dbg !808
  %34 = ptrtoint i8** %33 to i64, !dbg !808
  %35 = lshr i64 %34, 3, !dbg !808
  %36 = add i64 %35, 2147450880, !dbg !808
  %37 = inttoptr i64 %36 to i8*, !dbg !808
  %38 = load i8, i8* %37, !dbg !808
  %39 = icmp ne i8 %38, 0, !dbg !808
  br i1 %39, label %40, label %41, !dbg !808

40:                                               ; preds = %32
  call void @__asan_report_load8(i64 %34), !dbg !808
  call void asm sideeffect "", ""(), !dbg !808
  unreachable, !dbg !808

41:                                               ; preds = %32
  %42 = load i8*, i8** %33, align 8, !dbg !808
  %43 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %12, i32 0, i32 1, !dbg !808
  %44 = ptrtoint i64* %43 to i64, !dbg !808
  %45 = lshr i64 %44, 3, !dbg !808
  %46 = add i64 %45, 2147450880, !dbg !808
  %47 = inttoptr i64 %46 to i8*, !dbg !808
  %48 = load i8, i8* %47, !dbg !808
  %49 = icmp ne i8 %48, 0, !dbg !808
  br i1 %49, label %50, label %51, !dbg !808

50:                                               ; preds = %41
  call void @__asan_report_load8(i64 %44), !dbg !808
  call void asm sideeffect "", ""(), !dbg !808
  unreachable, !dbg !808

51:                                               ; preds = %41
  %52 = load i64, i64* %43, align 8, !dbg !808
  %53 = insertvalue { i8*, i64 } undef, i8* %42, 0, !dbg !808
  %54 = insertvalue { i8*, i64 } %53, i64 %52, 1, !dbg !808
  store i64 1172321806, i64* %13, !dbg !808
  %55 = icmp ne i64 %5, 0, !dbg !808
  br i1 %55, label %56, label %63, !dbg !808

56:                                               ; preds = %51
  %57 = add i64 %19, 0, !dbg !808
  %58 = inttoptr i64 %57 to i64*, !dbg !808
  store i64 -723401728380766731, i64* %58, align 1, !dbg !808
  %59 = add i64 %5, 56, !dbg !808
  %60 = inttoptr i64 %59 to i64*, !dbg !808
  %61 = load i64, i64* %60, !dbg !808
  %62 = inttoptr i64 %61 to i8*, !dbg !808
  store i8 0, i8* %62, !dbg !808
  br label %66, !dbg !808

63:                                               ; preds = %51
  %64 = add i64 %19, 0, !dbg !808
  %65 = inttoptr i64 %64 to i64*, !dbg !808
  store i64 0, i64* %65, align 1, !dbg !808
  br label %66, !dbg !808

66:                                               ; preds = %63, %56
  ret { i8*, i64 } %54, !dbg !808
}

; <core::result::Result<T,E> as core::ops::try::Try>::into_result
; Function Attrs: inlinehint nonlazybind sanitize_address uwtable
define internal i8* @"_ZN73_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h19b933b92aaa401eE"(i8* %self) unnamed_addr #0 !dbg !809 {
start:
  %self.dbg.spill = alloca i8*, align 8
  store i8* %self, i8** %self.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !813, metadata !DIExpression()), !dbg !814
  ret i8* %self, !dbg !815
}

; main::test_local
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4main10test_local17h6fce92d1a2065c63E(i32 %i) unnamed_addr #1 !dbg !816 {
start:
  %arg0.dbg.spill = alloca i32*, align 8
  %a.dbg.spill = alloca i32, align 4
  %i.dbg.spill = alloca i32, align 4
  %_12 = alloca i32*, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_2(i64 160)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 160, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to i32*
  %13 = add i64 %10, 48
  %14 = inttoptr i64 %13 to [1 x { i8*, i8* }]*
  %15 = add i64 %10, 80
  %16 = inttoptr i64 %15 to %"core::fmt::Arguments"*
  %17 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %17
  %18 = add i64 %10, 8
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint ([42 x i8]* @___asan_gen_.19 to i64), i64* %19
  %20 = add i64 %10, 16
  %21 = inttoptr i64 %20 to i64*
  store i64 ptrtoint (void (i32)* @_ZN4main10test_local17h6fce92d1a2065c63E to i64), i64* %21
  %22 = lshr i64 %10, 3
  %23 = add i64 %22, 2147450880
  %24 = add i64 %23, 0
  %25 = inttoptr i64 %24 to i64*
  store i64 -506387807054204431, i64* %25, align 1
  %26 = add i64 %23, 8
  %27 = inttoptr i64 %26 to i64*
  store i64 -506381209866538254, i64* %27, align 1
  %28 = add i64 %23, 16
  %29 = inttoptr i64 %28 to i32*
  store i32 -202116109, i32* %29, align 1
  store i32 %i, i32* %i.dbg.spill, align 4
  call void @llvm.dbg.declare(metadata i32* %i.dbg.spill, metadata !822, metadata !DIExpression()), !dbg !829
  store i32 1, i32* %a.dbg.spill, align 4, !dbg !830
  call void @llvm.dbg.declare(metadata i32* %a.dbg.spill, metadata !823, metadata !DIExpression()), !dbg !831
  %30 = bitcast %"core::fmt::Arguments"* %16 to i8*, !dbg !832
  %31 = add i64 %23, 10, !dbg !832
  %32 = inttoptr i64 %31 to i32*, !dbg !832
  store i32 0, i32* %32, align 1, !dbg !832
  %33 = add i64 %23, 14, !dbg !832
  %34 = inttoptr i64 %33 to i16*, !dbg !832
  store i16 0, i16* %34, align 1, !dbg !832
  call void @llvm.lifetime.start.p0i8(i64 48, i8* %30), !dbg !832
  %_22 = load [2 x { [0 x i8]*, i64 }]*, [2 x { [0 x i8]*, i64 }]** bitcast ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global to [2 x { [0 x i8]*, i64 }]**), align 8, !dbg !833, !nonnull !4
  %_5.0 = bitcast [2 x { [0 x i8]*, i64 }]* %_22 to [0 x { [0 x i8]*, i64 }]*, !dbg !833
  %35 = bitcast [1 x { i8*, i8* }]* %14 to i8*, !dbg !832
  %36 = add i64 %23, 6, !dbg !832
  %37 = inttoptr i64 %36 to i16*, !dbg !832
  store i16 0, i16* %37, align 1, !dbg !832
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %35), !dbg !832
  %38 = bitcast i32** %_12 to i8*, !dbg !832
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %38), !dbg !832
  %39 = bitcast i32* %12 to i8*, !dbg !834
  %40 = add i64 %23, 4, !dbg !834
  %41 = inttoptr i64 %40 to i8*, !dbg !834
  store i8 4, i8* %41, align 1, !dbg !834
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %39), !dbg !834
  %42 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 1, i32 %i), !dbg !834
  %_17.0 = extractvalue { i32, i1 } %42, 0, !dbg !834
  %_17.1 = extractvalue { i32, i1 } %42, 1, !dbg !834
  %43 = call i1 @llvm.expect.i1(i1 %_17.1, i1 false), !dbg !834
  br i1 %43, label %panic, label %bb1, !dbg !834

bb1:                                              ; preds = %9
  %44 = ptrtoint i32* %12 to i64, !dbg !834
  %45 = lshr i64 %44, 3, !dbg !834
  %46 = add i64 %45, 2147450880, !dbg !834
  %47 = inttoptr i64 %46 to i8*, !dbg !834
  %48 = load i8, i8* %47, !dbg !834
  %49 = icmp ne i8 %48, 0, !dbg !834
  br i1 %49, label %50, label %56, !dbg !834, !prof !139

50:                                               ; preds = %bb1
  %51 = and i64 %44, 7, !dbg !834
  %52 = add i64 %51, 3, !dbg !834
  %53 = trunc i64 %52 to i8, !dbg !834
  %54 = icmp sge i8 %53, %48, !dbg !834
  br i1 %54, label %55, label %56, !dbg !834

55:                                               ; preds = %50
  call void @__asan_report_store4(i64 %44), !dbg !834
  call void asm sideeffect "", ""()
  unreachable

56:                                               ; preds = %50, %bb1
  store i32 %_17.0, i32* %12, align 4, !dbg !834
  store i32* %12, i32** %_12, align 8, !dbg !832
  %arg0 = load i32*, i32** %_12, align 8, !dbg !832, !nonnull !4
  store i32* %arg0, i32** %arg0.dbg.spill, align 8, !dbg !832
  call void @llvm.dbg.declare(metadata i32** %arg0.dbg.spill, metadata !825, metadata !DIExpression()), !dbg !835
; call core::fmt::ArgumentV1::new
  %57 = call { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E(i32* noalias readonly align 4 dereferenceable(4) %arg0, i1 (i32*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc0974365d01b28f2E"), !dbg !835
  %_19.0 = extractvalue { i8*, i8* } %57, 0, !dbg !835
  %_19.1 = extractvalue { i8*, i8* } %57, 1, !dbg !835
  br label %bb2, !dbg !835

bb2:                                              ; preds = %56
  %58 = bitcast [1 x { i8*, i8* }]* %14 to { i8*, i8* }*, !dbg !835
  %59 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %58, i32 0, i32 0, !dbg !835
  %60 = ptrtoint i8** %59 to i64, !dbg !835
  %61 = lshr i64 %60, 3, !dbg !835
  %62 = add i64 %61, 2147450880, !dbg !835
  %63 = inttoptr i64 %62 to i8*, !dbg !835
  %64 = load i8, i8* %63, !dbg !835
  %65 = icmp ne i8 %64, 0, !dbg !835
  br i1 %65, label %66, label %67, !dbg !835

66:                                               ; preds = %bb2
  call void @__asan_report_store8(i64 %60), !dbg !835
  call void asm sideeffect "", ""(), !dbg !835
  unreachable, !dbg !835

67:                                               ; preds = %bb2
  store i8* %_19.0, i8** %59, align 8, !dbg !835
  %68 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %58, i32 0, i32 1, !dbg !835
  %69 = ptrtoint i8** %68 to i64, !dbg !835
  %70 = lshr i64 %69, 3, !dbg !835
  %71 = add i64 %70, 2147450880, !dbg !835
  %72 = inttoptr i64 %71 to i8*, !dbg !835
  %73 = load i8, i8* %72, !dbg !835
  %74 = icmp ne i8 %73, 0, !dbg !835
  br i1 %74, label %75, label %76, !dbg !835

75:                                               ; preds = %67
  call void @__asan_report_store8(i64 %69), !dbg !835
  call void asm sideeffect "", ""(), !dbg !835
  unreachable, !dbg !835

76:                                               ; preds = %67
  store i8* %_19.1, i8** %68, align 8, !dbg !835
  %_8.0 = bitcast [1 x { i8*, i8* }]* %14 to [0 x { i8*, i8* }]*, !dbg !832
; call core::fmt::Arguments::new_v1
  call void @_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %16, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %_5.0, i64 2, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %_8.0, i64 1), !dbg !832
  br label %bb3, !dbg !832

bb3:                                              ; preds = %76
; call std::io::stdio::_print
  call void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48) %16), !dbg !832
  br label %bb4, !dbg !832

bb4:                                              ; preds = %bb3
  %77 = bitcast %"core::fmt::Arguments"* %16 to i8*, !dbg !832
  %78 = add i64 %23, 10, !dbg !832
  %79 = inttoptr i64 %78 to i32*, !dbg !832
  store i32 -117901064, i32* %79, align 1, !dbg !832
  %80 = add i64 %23, 14, !dbg !832
  %81 = inttoptr i64 %80 to i16*, !dbg !832
  store i16 -1800, i16* %81, align 1, !dbg !832
  call void @llvm.lifetime.end.p0i8(i64 48, i8* %77), !dbg !832
  %82 = bitcast i32* %12 to i8*, !dbg !832
  %83 = add i64 %23, 4, !dbg !832
  %84 = inttoptr i64 %83 to i8*, !dbg !832
  store i8 -8, i8* %84, align 1, !dbg !832
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %82), !dbg !832
  %85 = bitcast i32** %_12 to i8*, !dbg !832
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %85), !dbg !832
  %86 = bitcast [1 x { i8*, i8* }]* %14 to i8*, !dbg !832
  %87 = add i64 %23, 6, !dbg !832
  %88 = inttoptr i64 %87 to i16*, !dbg !832
  store i16 -1800, i16* %88, align 1, !dbg !832
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %86), !dbg !832
  store i64 1172321806, i64* %17, !dbg !836
  %89 = icmp ne i64 %5, 0, !dbg !836
  br i1 %89, label %90, label %103, !dbg !836

90:                                               ; preds = %bb4
  %91 = add i64 %23, 0, !dbg !836
  %92 = inttoptr i64 %91 to i64*, !dbg !836
  store i64 -723401728380766731, i64* %92, align 1, !dbg !836
  %93 = add i64 %23, 8, !dbg !836
  %94 = inttoptr i64 %93 to i64*, !dbg !836
  store i64 -723401728380766731, i64* %94, align 1, !dbg !836
  %95 = add i64 %23, 16, !dbg !836
  %96 = inttoptr i64 %95 to i64*, !dbg !836
  store i64 -723401728380766731, i64* %96, align 1, !dbg !836
  %97 = add i64 %23, 24, !dbg !836
  %98 = inttoptr i64 %97 to i64*, !dbg !836
  store i64 -723401728380766731, i64* %98, align 1, !dbg !836
  %99 = add i64 %5, 248, !dbg !836
  %100 = inttoptr i64 %99 to i64*, !dbg !836
  %101 = load i64, i64* %100, !dbg !836
  %102 = inttoptr i64 %101 to i8*, !dbg !836
  store i8 0, i8* %102, !dbg !836
  br label %110, !dbg !836

103:                                              ; preds = %bb4
  %104 = add i64 %23, 0, !dbg !836
  %105 = inttoptr i64 %104 to i64*, !dbg !836
  store i64 0, i64* %105, align 1, !dbg !836
  %106 = add i64 %23, 8, !dbg !836
  %107 = inttoptr i64 %106 to i64*, !dbg !836
  store i64 0, i64* %107, align 1, !dbg !836
  %108 = add i64 %23, 16, !dbg !836
  %109 = inttoptr i64 %108 to i32*, !dbg !836
  store i32 0, i32* %109, align 1, !dbg !836
  br label %110, !dbg !836

110:                                              ; preds = %103, %90
  ret void, !dbg !836

panic:                                            ; preds = %9
  call void @__asan_handle_no_return(), !dbg !834
; call core::panicking::panic
  call void @_ZN4core9panicking5panic17h68e56c2eeba99c8cE([0 x i8]* noalias nonnull readonly align 1 bitcast ({ [28 x i8], [36 x i8] }* @str.1 to [0 x i8]*), i64 28, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24) bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc52 to %"core::panic::Location"*)), !dbg !834
  unreachable, !dbg !834
}

; main::test_array
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4main10test_array17hc0675ced7869a5f4E(i64 %index) unnamed_addr #1 !dbg !837 {
start:
  %arg0.dbg.spill = alloca i32*, align 8
  %index.dbg.spill = alloca i64, align 8
  %_19 = alloca i32*, align 8
  %b = alloca i32, align 4
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_2(i64 160)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 160, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to [1 x { i8*, i8* }]*
  %13 = add i64 %10, 64
  %14 = inttoptr i64 %13 to %"core::fmt::Arguments"*
  %15 = add i64 %10, 144
  %16 = inttoptr i64 %15 to [1 x i32]*
  %17 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %17
  %18 = add i64 %10, 8
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint ([45 x i8]* @___asan_gen_.20 to i64), i64* %19
  %20 = add i64 %10, 16
  %21 = inttoptr i64 %20 to i64*
  store i64 ptrtoint (void (i64)* @_ZN4main10test_array17hc0675ced7869a5f4E to i64), i64* %21
  %22 = lshr i64 %10, 3
  %23 = add i64 %22, 2147450880
  %24 = add i64 %23, 0
  %25 = inttoptr i64 %24 to i64*
  store i64 -940415624072269327, i64* %25, align 1
  %26 = add i64 %23, 8
  %27 = inttoptr i64 %26 to i64*
  store i64 -940415623954368264, i64* %27, align 1
  %28 = add i64 %23, 16
  %29 = inttoptr i64 %28 to i32*
  store i32 -201788686, i32* %29, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !842, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 144)), !dbg !852
  store i64 %index, i64* %index.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i64* %index.dbg.spill, metadata !841, metadata !DIExpression()), !dbg !853
  call void @llvm.dbg.declare(metadata i32* %b, metadata !847, metadata !DIExpression()), !dbg !854
  %30 = bitcast [1 x i32]* %16 to i8*, !dbg !855
  %31 = add i64 %23, 18, !dbg !855
  %32 = inttoptr i64 %31 to i8*, !dbg !855
  store i8 4, i8* %32, align 1, !dbg !855
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %30), !dbg !855
  %33 = bitcast [1 x i32]* %16 to i32*, !dbg !856
  %34 = ptrtoint i32* %33 to i64, !dbg !856
  %35 = lshr i64 %34, 3, !dbg !856
  %36 = add i64 %35, 2147450880, !dbg !856
  %37 = inttoptr i64 %36 to i8*, !dbg !856
  %38 = load i8, i8* %37, !dbg !856
  %39 = icmp ne i8 %38, 0, !dbg !856
  br i1 %39, label %40, label %46, !dbg !856, !prof !139

40:                                               ; preds = %9
  %41 = and i64 %34, 7, !dbg !856
  %42 = add i64 %41, 3, !dbg !856
  %43 = trunc i64 %42 to i8, !dbg !856
  %44 = icmp sge i8 %43, %38, !dbg !856
  br i1 %44, label %45, label %46, !dbg !856

45:                                               ; preds = %40
  call void @__asan_report_store4(i64 %34), !dbg !856
  call void asm sideeffect "", ""()
  unreachable

46:                                               ; preds = %40, %9
  store i32 9999, i32* %33, align 4, !dbg !856
  %47 = bitcast i32* %b to i8*, !dbg !857
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %47), !dbg !857
  %48 = getelementptr inbounds [1 x i32], [1 x i32]* %16, i64 0, i64 0, !dbg !858
  %49 = ptrtoint i32* %48 to i64, !dbg !858
  %50 = lshr i64 %49, 3, !dbg !858
  %51 = add i64 %50, 2147450880, !dbg !858
  %52 = inttoptr i64 %51 to i8*, !dbg !858
  %53 = load i8, i8* %52, !dbg !858
  %54 = icmp ne i8 %53, 0, !dbg !858
  br i1 %54, label %55, label %61, !dbg !858, !prof !139

55:                                               ; preds = %46
  %56 = and i64 %49, 7, !dbg !858
  %57 = add i64 %56, 3, !dbg !858
  %58 = trunc i64 %57 to i8, !dbg !858
  %59 = icmp sge i8 %58, %53, !dbg !858
  br i1 %59, label %60, label %61, !dbg !858

60:                                               ; preds = %55
  call void @__asan_report_load4(i64 %49), !dbg !858
  call void asm sideeffect "", ""()
  unreachable

61:                                               ; preds = %55, %46
  %62 = load i32, i32* %48, align 4, !dbg !858
  store i32 %62, i32* %b, align 4, !dbg !858
  %63 = load i32, i32* %b, align 4, !dbg !859
  %64 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %63, i32 1), !dbg !859
  %_5.0 = extractvalue { i32, i1 } %64, 0, !dbg !859
  %_5.1 = extractvalue { i32, i1 } %64, 1, !dbg !859
  %65 = call i1 @llvm.expect.i1(i1 %_5.1, i1 false), !dbg !859
  br i1 %65, label %panic, label %bb1, !dbg !859

bb1:                                              ; preds = %61
  store i32 %_5.0, i32* %b, align 4, !dbg !859
  %_6 = load i32, i32* %b, align 4, !dbg !860
  %_9 = icmp ult i64 %index, 1, !dbg !861
  %66 = call i1 @llvm.expect.i1(i1 %_9, i1 true), !dbg !861
  br i1 %66, label %bb2, label %panic1, !dbg !861

bb2:                                              ; preds = %bb1
  %67 = getelementptr inbounds [1 x i32], [1 x i32]* %16, i64 0, i64 %index, !dbg !861
  %68 = ptrtoint i32* %67 to i64, !dbg !861
  %69 = lshr i64 %68, 3, !dbg !861
  %70 = add i64 %69, 2147450880, !dbg !861
  %71 = inttoptr i64 %70 to i8*, !dbg !861
  %72 = load i8, i8* %71, !dbg !861
  %73 = icmp ne i8 %72, 0, !dbg !861
  br i1 %73, label %74, label %80, !dbg !861, !prof !139

74:                                               ; preds = %bb2
  %75 = and i64 %68, 7, !dbg !861
  %76 = add i64 %75, 3, !dbg !861
  %77 = trunc i64 %76 to i8, !dbg !861
  %78 = icmp sge i8 %77, %72, !dbg !861
  br i1 %78, label %79, label %80, !dbg !861

79:                                               ; preds = %74
  call void @__asan_report_store4(i64 %68), !dbg !861
  call void asm sideeffect "", ""()
  unreachable

80:                                               ; preds = %74, %bb2
  store i32 %_6, i32* %67, align 4, !dbg !861
  %81 = bitcast %"core::fmt::Arguments"* %14 to i8*, !dbg !862
  %82 = add i64 %23, 8, !dbg !862
  %83 = inttoptr i64 %82 to i32*, !dbg !862
  store i32 0, i32* %83, align 1, !dbg !862
  %84 = add i64 %23, 12, !dbg !862
  %85 = inttoptr i64 %84 to i16*, !dbg !862
  store i16 0, i16* %85, align 1, !dbg !862
  call void @llvm.lifetime.start.p0i8(i64 48, i8* %81), !dbg !862
  %_28 = load [2 x { [0 x i8]*, i64 }]*, [2 x { [0 x i8]*, i64 }]** bitcast ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.50 to [2 x { [0 x i8]*, i64 }]**), align 8, !dbg !863, !nonnull !4
  %_12.0 = bitcast [2 x { [0 x i8]*, i64 }]* %_28 to [0 x { [0 x i8]*, i64 }]*, !dbg !863
  %86 = bitcast [1 x { i8*, i8* }]* %12 to i8*, !dbg !862
  %87 = add i64 %23, 4, !dbg !862
  %88 = inttoptr i64 %87 to i16*, !dbg !862
  store i16 0, i16* %88, align 1, !dbg !862
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %86), !dbg !862
  %89 = bitcast i32** %_19 to i8*, !dbg !862
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %89), !dbg !862
  %_23 = icmp ult i64 %index, 1, !dbg !864
  %90 = call i1 @llvm.expect.i1(i1 %_23, i1 true), !dbg !864
  br i1 %90, label %bb3, label %panic2, !dbg !864

bb3:                                              ; preds = %80
  %_20 = getelementptr inbounds [1 x i32], [1 x i32]* %16, i64 0, i64 %index, !dbg !864
  store i32* %_20, i32** %_19, align 8, !dbg !862
  %arg0 = load i32*, i32** %_19, align 8, !dbg !862, !nonnull !4
  store i32* %arg0, i32** %arg0.dbg.spill, align 8, !dbg !862
  call void @llvm.dbg.declare(metadata i32** %arg0.dbg.spill, metadata !849, metadata !DIExpression()), !dbg !865
; call core::fmt::ArgumentV1::new
  %91 = call { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E(i32* noalias readonly align 4 dereferenceable(4) %arg0, i1 (i32*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc0974365d01b28f2E"), !dbg !865
  %_25.0 = extractvalue { i8*, i8* } %91, 0, !dbg !865
  %_25.1 = extractvalue { i8*, i8* } %91, 1, !dbg !865
  br label %bb4, !dbg !865

bb4:                                              ; preds = %bb3
  %92 = bitcast [1 x { i8*, i8* }]* %12 to { i8*, i8* }*, !dbg !865
  %93 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %92, i32 0, i32 0, !dbg !865
  %94 = ptrtoint i8** %93 to i64, !dbg !865
  %95 = lshr i64 %94, 3, !dbg !865
  %96 = add i64 %95, 2147450880, !dbg !865
  %97 = inttoptr i64 %96 to i8*, !dbg !865
  %98 = load i8, i8* %97, !dbg !865
  %99 = icmp ne i8 %98, 0, !dbg !865
  br i1 %99, label %100, label %101, !dbg !865

100:                                              ; preds = %bb4
  call void @__asan_report_store8(i64 %94), !dbg !865
  call void asm sideeffect "", ""(), !dbg !865
  unreachable, !dbg !865

101:                                              ; preds = %bb4
  store i8* %_25.0, i8** %93, align 8, !dbg !865
  %102 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %92, i32 0, i32 1, !dbg !865
  %103 = ptrtoint i8** %102 to i64, !dbg !865
  %104 = lshr i64 %103, 3, !dbg !865
  %105 = add i64 %104, 2147450880, !dbg !865
  %106 = inttoptr i64 %105 to i8*, !dbg !865
  %107 = load i8, i8* %106, !dbg !865
  %108 = icmp ne i8 %107, 0, !dbg !865
  br i1 %108, label %109, label %110, !dbg !865

109:                                              ; preds = %101
  call void @__asan_report_store8(i64 %103), !dbg !865
  call void asm sideeffect "", ""(), !dbg !865
  unreachable, !dbg !865

110:                                              ; preds = %101
  store i8* %_25.1, i8** %102, align 8, !dbg !865
  %_15.0 = bitcast [1 x { i8*, i8* }]* %12 to [0 x { i8*, i8* }]*, !dbg !862
; call core::fmt::Arguments::new_v1
  call void @_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %14, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %_12.0, i64 2, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %_15.0, i64 1), !dbg !862
  br label %bb5, !dbg !862

bb5:                                              ; preds = %110
; call std::io::stdio::_print
  call void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48) %14), !dbg !862
  br label %bb6, !dbg !862

bb6:                                              ; preds = %bb5
  %111 = bitcast %"core::fmt::Arguments"* %14 to i8*, !dbg !862
  %112 = add i64 %23, 8, !dbg !862
  %113 = inttoptr i64 %112 to i32*, !dbg !862
  store i32 -117901064, i32* %113, align 1, !dbg !862
  %114 = add i64 %23, 12, !dbg !862
  %115 = inttoptr i64 %114 to i16*, !dbg !862
  store i16 -1800, i16* %115, align 1, !dbg !862
  call void @llvm.lifetime.end.p0i8(i64 48, i8* %111), !dbg !862
  %116 = bitcast i32** %_19 to i8*, !dbg !862
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %116), !dbg !862
  %117 = bitcast [1 x { i8*, i8* }]* %12 to i8*, !dbg !862
  %118 = add i64 %23, 4, !dbg !862
  %119 = inttoptr i64 %118 to i16*, !dbg !862
  store i16 -1800, i16* %119, align 1, !dbg !862
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %117), !dbg !862
  %120 = bitcast i32* %b to i8*, !dbg !866
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %120), !dbg !866
  %121 = bitcast [1 x i32]* %16 to i8*, !dbg !867
  %122 = add i64 %23, 18, !dbg !867
  %123 = inttoptr i64 %122 to i8*, !dbg !867
  store i8 -8, i8* %123, align 1, !dbg !867
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %121), !dbg !867
  store i64 1172321806, i64* %17, !dbg !868
  %124 = icmp ne i64 %5, 0, !dbg !868
  br i1 %124, label %125, label %138, !dbg !868

125:                                              ; preds = %bb6
  %126 = add i64 %23, 0, !dbg !868
  %127 = inttoptr i64 %126 to i64*, !dbg !868
  store i64 -723401728380766731, i64* %127, align 1, !dbg !868
  %128 = add i64 %23, 8, !dbg !868
  %129 = inttoptr i64 %128 to i64*, !dbg !868
  store i64 -723401728380766731, i64* %129, align 1, !dbg !868
  %130 = add i64 %23, 16, !dbg !868
  %131 = inttoptr i64 %130 to i64*, !dbg !868
  store i64 -723401728380766731, i64* %131, align 1, !dbg !868
  %132 = add i64 %23, 24, !dbg !868
  %133 = inttoptr i64 %132 to i64*, !dbg !868
  store i64 -723401728380766731, i64* %133, align 1, !dbg !868
  %134 = add i64 %5, 248, !dbg !868
  %135 = inttoptr i64 %134 to i64*, !dbg !868
  %136 = load i64, i64* %135, !dbg !868
  %137 = inttoptr i64 %136 to i8*, !dbg !868
  store i8 0, i8* %137, !dbg !868
  br label %145, !dbg !868

138:                                              ; preds = %bb6
  %139 = add i64 %23, 0, !dbg !868
  %140 = inttoptr i64 %139 to i64*, !dbg !868
  store i64 0, i64* %140, align 1, !dbg !868
  %141 = add i64 %23, 8, !dbg !868
  %142 = inttoptr i64 %141 to i64*, !dbg !868
  store i64 0, i64* %142, align 1, !dbg !868
  %143 = add i64 %23, 16, !dbg !868
  %144 = inttoptr i64 %143 to i32*, !dbg !868
  store i32 0, i32* %144, align 1, !dbg !868
  br label %145, !dbg !868

145:                                              ; preds = %138, %125
  ret void, !dbg !868

panic:                                            ; preds = %61
  call void @__asan_handle_no_return(), !dbg !859
; call core::panicking::panic
  call void @_ZN4core9panicking5panic17h68e56c2eeba99c8cE([0 x i8]* noalias nonnull readonly align 1 bitcast ({ [28 x i8], [36 x i8] }* @str.1 to [0 x i8]*), i64 28, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24) bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc54 to %"core::panic::Location"*)), !dbg !859
  unreachable, !dbg !859

panic1:                                           ; preds = %bb1
  call void @__asan_handle_no_return(), !dbg !861
; call core::panicking::panic_bounds_check
  call void @_ZN4core9panicking18panic_bounds_check17hdef4fff11e167a6aE(i64 %index, i64 1, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24) bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc56 to %"core::panic::Location"*)), !dbg !861
  unreachable, !dbg !861

panic2:                                           ; preds = %80
  call void @__asan_handle_no_return(), !dbg !864
; call core::panicking::panic_bounds_check
  call void @_ZN4core9panicking18panic_bounds_check17hdef4fff11e167a6aE(i64 %index, i64 1, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24) bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc58 to %"core::panic::Location"*)), !dbg !864
  unreachable, !dbg !864
}

; main::test_box
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4main8test_box17hded4a61e18da0747E(i32 %i) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !869 {
start:
  %x.dbg.spill.i2 = alloca i32, align 4
  call void @llvm.dbg.declare(metadata i32* %x.dbg.spill.i2, metadata !881, metadata !DIExpression()), !dbg !886
  %x.dbg.spill.i = alloca i32, align 4
  call void @llvm.dbg.declare(metadata i32* %x.dbg.spill.i, metadata !881, metadata !DIExpression()), !dbg !888
  %arg0.dbg.spill = alloca i32*, align 8
  %i.dbg.spill = alloca i32, align 4
  %_28 = alloca i8, align 1
  %_27 = alloca i8, align 1
  %_20 = alloca i32*, align 8
  %p = alloca i32*, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_2(i64 256)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 256, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to { i8*, i32 }*
  %13 = add i64 %10, 64
  %14 = inttoptr i64 %13 to [1 x { i8*, i8* }]*
  %15 = add i64 %10, 96
  %16 = inttoptr i64 %15 to %"core::fmt::Arguments"*
  %17 = add i64 %10, 176
  %18 = inttoptr i64 %17 to i32**
  %19 = add i64 %10, 208
  %20 = inttoptr i64 %19 to i32**
  %21 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %21
  %22 = add i64 %10, 8
  %23 = inttoptr i64 %22 to i64*
  store i64 ptrtoint ([75 x i8]* @___asan_gen_.21 to i64), i64* %23
  %24 = add i64 %10, 16
  %25 = inttoptr i64 %24 to i64*
  store i64 ptrtoint (void (i32)* @_ZN4main8test_box17hded4a61e18da0747E to i64), i64* %25
  %26 = lshr i64 %10, 3
  %27 = add i64 %26, 2147450880
  %28 = add i64 %27, 0
  %29 = inttoptr i64 %28 to i64*
  store i64 -940415624072269327, i64* %29, align 1
  %30 = add i64 %27, 8
  %31 = inttoptr i64 %30 to i64*
  store i64 -506381209967593224, i64* %31, align 1
  %32 = add i64 %27, 16
  %33 = inttoptr i64 %32 to i64*
  store i64 -938733397034731272, i64* %33, align 1
  %34 = add i64 %27, 24
  %35 = inttoptr i64 %34 to i64*
  store i64 -868082074056592654, i64* %35, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !874, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 176)), !dbg !890
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !872, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 208)), !dbg !891
  store i32 %i, i32* %i.dbg.spill, align 4
  call void @llvm.dbg.declare(metadata i32* %i.dbg.spill, metadata !871, metadata !DIExpression()), !dbg !892
  call void @llvm.dbg.declare(metadata i32** %p, metadata !876, metadata !DIExpression()), !dbg !893
  store i8 0, i8* %_27, align 1, !dbg !894
  store i8 0, i8* %_28, align 1, !dbg !894
  %36 = bitcast i32** %20 to i8*, !dbg !894
  %37 = add i64 %27, 26, !dbg !894
  %38 = inttoptr i64 %37 to i8*, !dbg !894
  store i8 0, i8* %38, align 1, !dbg !894
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %36), !dbg !894
  store i8 1, i8* %_27, align 1, !dbg !895
  %39 = bitcast i32* %x.dbg.spill.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %39)
  store i32 5, i32* %x.dbg.spill.i, align 4
; call alloc::alloc::exchange_malloc
  %40 = call i8* @_ZN5alloc5alloc15exchange_malloc17he756f9617b20b78aE(i64 4, i64 4), !dbg !896
  %41 = bitcast i8* %40 to i32*, !dbg !896
  %42 = ptrtoint i32* %41 to i64, !dbg !897
  %43 = lshr i64 %42, 3, !dbg !897
  %44 = add i64 %43, 2147450880, !dbg !897
  %45 = inttoptr i64 %44 to i8*, !dbg !897
  %46 = load i8, i8* %45, !dbg !897
  %47 = icmp ne i8 %46, 0, !dbg !897
  br i1 %47, label %48, label %54, !dbg !897, !prof !139

48:                                               ; preds = %9
  %49 = and i64 %42, 7, !dbg !897
  %50 = add i64 %49, 3, !dbg !897
  %51 = trunc i64 %50 to i8, !dbg !897
  %52 = icmp sge i8 %51, %46, !dbg !897
  br i1 %52, label %53, label %54, !dbg !897

53:                                               ; preds = %48
  call void @__asan_report_store4(i64 %42), !dbg !897
  call void asm sideeffect "", ""()
  unreachable

54:                                               ; preds = %48, %9
  store i32 5, i32* %41, align 4, !dbg !897
  %55 = bitcast i32* %x.dbg.spill.i to i8*, !dbg !898
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %55), !dbg !898
  %56 = ptrtoint i32** %20 to i64, !dbg !895
  %57 = lshr i64 %56, 3, !dbg !895
  %58 = add i64 %57, 2147450880, !dbg !895
  %59 = inttoptr i64 %58 to i8*, !dbg !895
  %60 = load i8, i8* %59, !dbg !895
  %61 = icmp ne i8 %60, 0, !dbg !895
  br i1 %61, label %62, label %63, !dbg !895

62:                                               ; preds = %54
  call void @__asan_report_store8(i64 %56), !dbg !895
  call void asm sideeffect "", ""(), !dbg !895
  unreachable, !dbg !895

63:                                               ; preds = %54
  store i32* %41, i32** %20, align 8, !dbg !895
  br label %bb2, !dbg !895

bb1:                                              ; preds = %bb14, %bb15
  %64 = bitcast { i8*, i32 }* %12 to i8**, !dbg !899
  %65 = ptrtoint i8** %64 to i64, !dbg !899
  %66 = lshr i64 %65, 3, !dbg !899
  %67 = add i64 %66, 2147450880, !dbg !899
  %68 = inttoptr i64 %67 to i8*, !dbg !899
  %69 = load i8, i8* %68, !dbg !899
  %70 = icmp ne i8 %69, 0, !dbg !899
  br i1 %70, label %71, label %72, !dbg !899

71:                                               ; preds = %bb1
  call void @__asan_report_load8(i64 %65), !dbg !899
  call void asm sideeffect "", ""(), !dbg !899
  unreachable, !dbg !899

72:                                               ; preds = %bb1
  %73 = load i8*, i8** %64, align 8, !dbg !899
  %74 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 1, !dbg !899
  %75 = ptrtoint i32* %74 to i64, !dbg !899
  %76 = lshr i64 %75, 3, !dbg !899
  %77 = add i64 %76, 2147450880, !dbg !899
  %78 = inttoptr i64 %77 to i8*, !dbg !899
  %79 = load i8, i8* %78, !dbg !899
  %80 = icmp ne i8 %79, 0, !dbg !899
  br i1 %80, label %81, label %87, !dbg !899, !prof !139

81:                                               ; preds = %72
  %82 = and i64 %75, 7, !dbg !899
  %83 = add i64 %82, 3, !dbg !899
  %84 = trunc i64 %83 to i8, !dbg !899
  %85 = icmp sge i8 %84, %79, !dbg !899
  br i1 %85, label %86, label %87, !dbg !899

86:                                               ; preds = %81
  call void @__asan_report_load4(i64 %75), !dbg !899
  call void asm sideeffect "", ""()
  unreachable

87:                                               ; preds = %81, %72
  %88 = load i32, i32* %74, align 8, !dbg !899
  %89 = bitcast { i8*, i32 }* %12 to i8*, !dbg !899
  %90 = add i64 %27, 4, !dbg !899
  %91 = inttoptr i64 %90 to i16*, !dbg !899
  store i16 -1800, i16* %91, align 1, !dbg !899
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %89), !dbg !899
  %92 = insertvalue { i8*, i32 } undef, i8* %73, 0, !dbg !899
  %93 = insertvalue { i8*, i32 } %92, i32 %88, 1, !dbg !899
  store i64 1172321806, i64* %21, !dbg !899
  %94 = icmp ne i64 %5, 0, !dbg !899
  br i1 %94, label %95, label %108, !dbg !899

95:                                               ; preds = %87
  %96 = add i64 %27, 0, !dbg !899
  %97 = inttoptr i64 %96 to i64*, !dbg !899
  store i64 -723401728380766731, i64* %97, align 1, !dbg !899
  %98 = add i64 %27, 8, !dbg !899
  %99 = inttoptr i64 %98 to i64*, !dbg !899
  store i64 -723401728380766731, i64* %99, align 1, !dbg !899
  %100 = add i64 %27, 16, !dbg !899
  %101 = inttoptr i64 %100 to i64*, !dbg !899
  store i64 -723401728380766731, i64* %101, align 1, !dbg !899
  %102 = add i64 %27, 24, !dbg !899
  %103 = inttoptr i64 %102 to i64*, !dbg !899
  store i64 -723401728380766731, i64* %103, align 1, !dbg !899
  %104 = add i64 %5, 248, !dbg !899
  %105 = inttoptr i64 %104 to i64*, !dbg !899
  %106 = load i64, i64* %105, !dbg !899
  %107 = inttoptr i64 %106 to i8*, !dbg !899
  store i8 0, i8* %107, !dbg !899
  br label %117, !dbg !899

108:                                              ; preds = %87
  %109 = add i64 %27, 0, !dbg !899
  %110 = inttoptr i64 %109 to i64*, !dbg !899
  store i64 0, i64* %110, align 1, !dbg !899
  %111 = add i64 %27, 8, !dbg !899
  %112 = inttoptr i64 %111 to i64*, !dbg !899
  store i64 0, i64* %112, align 1, !dbg !899
  %113 = add i64 %27, 16, !dbg !899
  %114 = inttoptr i64 %113 to i64*, !dbg !899
  store i64 0, i64* %114, align 1, !dbg !899
  %115 = add i64 %27, 24, !dbg !899
  %116 = inttoptr i64 %115 to i64*, !dbg !899
  store i64 0, i64* %116, align 1, !dbg !899
  br label %117, !dbg !899

117:                                              ; preds = %108, %95
  resume { i8*, i32 } %93, !dbg !899

bb2:                                              ; preds = %63
  %118 = bitcast i32** %18 to i8*, !dbg !900
  %119 = add i64 %27, 22, !dbg !900
  %120 = inttoptr i64 %119 to i8*, !dbg !900
  store i8 0, i8* %120, align 1, !dbg !900
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %118), !dbg !900
  %121 = bitcast i32* %x.dbg.spill.i2 to i8*
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %121)
  store i32 6, i32* %x.dbg.spill.i2, align 4
; invoke alloc::alloc::exchange_malloc
  %122 = invoke i8* @_ZN5alloc5alloc15exchange_malloc17he756f9617b20b78aE(i64 4, i64 4)
          to label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hb1321fc2690736cdE.exit" unwind label %cleanup, !dbg !901

"_ZN5alloc5boxed12Box$LT$T$GT$3new17hb1321fc2690736cdE.exit": ; preds = %bb2
  %123 = bitcast i8* %122 to i32*, !dbg !901
  %124 = ptrtoint i32* %123 to i64, !dbg !902
  %125 = lshr i64 %124, 3, !dbg !902
  %126 = add i64 %125, 2147450880, !dbg !902
  %127 = inttoptr i64 %126 to i8*, !dbg !902
  %128 = load i8, i8* %127, !dbg !902
  %129 = icmp ne i8 %128, 0, !dbg !902
  br i1 %129, label %130, label %136, !dbg !902, !prof !139

130:                                              ; preds = %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hb1321fc2690736cdE.exit"
  %131 = and i64 %124, 7, !dbg !902
  %132 = add i64 %131, 3, !dbg !902
  %133 = trunc i64 %132 to i8, !dbg !902
  %134 = icmp sge i8 %133, %128, !dbg !902
  br i1 %134, label %135, label %136, !dbg !902

135:                                              ; preds = %130
  call void @__asan_report_store4(i64 %124), !dbg !902
  call void asm sideeffect "", ""()
  unreachable

136:                                              ; preds = %130, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hb1321fc2690736cdE.exit"
  store i32 6, i32* %123, align 4, !dbg !902
  %137 = bitcast i32* %x.dbg.spill.i2 to i8*, !dbg !903
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %137), !dbg !903
  br label %bb3, !dbg !903

bb3:                                              ; preds = %136
  %138 = ptrtoint i32** %18 to i64, !dbg !904
  %139 = lshr i64 %138, 3, !dbg !904
  %140 = add i64 %139, 2147450880, !dbg !904
  %141 = inttoptr i64 %140 to i8*, !dbg !904
  %142 = load i8, i8* %141, !dbg !904
  %143 = icmp ne i8 %142, 0, !dbg !904
  br i1 %143, label %144, label %145, !dbg !904

144:                                              ; preds = %bb3
  call void @__asan_report_store8(i64 %138), !dbg !904
  call void asm sideeffect "", ""(), !dbg !904
  unreachable, !dbg !904

145:                                              ; preds = %bb3
  store i32* %123, i32** %18, align 8, !dbg !904
  store i8 1, i8* %_28, align 1, !dbg !905
  %146 = bitcast i32** %p to i8*, !dbg !905
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %146), !dbg !905
  %_5 = icmp eq i32 %i, 0, !dbg !906
  br i1 %_5, label %bb5, label %bb4, !dbg !907

bb4:                                              ; preds = %145
  store i8 0, i8* %_28, align 1, !dbg !908
  %147 = ptrtoint i32** %18 to i64, !dbg !908
  %148 = lshr i64 %147, 3, !dbg !908
  %149 = add i64 %148, 2147450880, !dbg !908
  %150 = inttoptr i64 %149 to i8*, !dbg !908
  %151 = load i8, i8* %150, !dbg !908
  %152 = icmp ne i8 %151, 0, !dbg !908
  br i1 %152, label %153, label %154, !dbg !908

153:                                              ; preds = %bb4
  call void @__asan_report_load8(i64 %147), !dbg !908
  call void asm sideeffect "", ""(), !dbg !908
  unreachable, !dbg !908

154:                                              ; preds = %bb4
  %_10 = load i32*, i32** %18, align 8, !dbg !908, !nonnull !4
; invoke alloc::boxed::Box<T>::into_raw
  %_9 = invoke i32* @"_ZN5alloc5boxed12Box$LT$T$GT$8into_raw17h9bfedc35f7b96439E"(i32* noalias nonnull align 4 %_10)
          to label %bb7 unwind label %cleanup1, !dbg !909

bb5:                                              ; preds = %145
  store i8 0, i8* %_27, align 1, !dbg !910
  %155 = ptrtoint i32** %20 to i64, !dbg !910
  %156 = lshr i64 %155, 3, !dbg !910
  %157 = add i64 %156, 2147450880, !dbg !910
  %158 = inttoptr i64 %157 to i8*, !dbg !910
  %159 = load i8, i8* %158, !dbg !910
  %160 = icmp ne i8 %159, 0, !dbg !910
  br i1 %160, label %161, label %162, !dbg !910

161:                                              ; preds = %bb5
  call void @__asan_report_load8(i64 %155), !dbg !910
  call void asm sideeffect "", ""(), !dbg !910
  unreachable, !dbg !910

162:                                              ; preds = %bb5
  %_8 = load i32*, i32** %20, align 8, !dbg !910, !nonnull !4
; invoke alloc::boxed::Box<T>::into_raw
  %_7 = invoke i32* @"_ZN5alloc5boxed12Box$LT$T$GT$8into_raw17h9bfedc35f7b96439E"(i32* noalias nonnull align 4 %_8)
          to label %bb6 unwind label %cleanup1, !dbg !911

bb6:                                              ; preds = %162
  store i32* %_7, i32** %p, align 8, !dbg !912
  br label %bb8, !dbg !907

bb7:                                              ; preds = %154
  store i32* %_9, i32** %p, align 8, !dbg !913
  br label %bb8, !dbg !907

bb8:                                              ; preds = %bb7, %bb6
  %163 = bitcast %"core::fmt::Arguments"* %16 to i8*, !dbg !914
  %164 = add i64 %27, 12, !dbg !914
  %165 = inttoptr i64 %164 to i32*, !dbg !914
  store i32 0, i32* %165, align 1, !dbg !914
  %166 = add i64 %27, 16, !dbg !914
  %167 = inttoptr i64 %166 to i16*, !dbg !914
  store i16 0, i16* %167, align 1, !dbg !914
  call void @llvm.lifetime.start.p0i8(i64 48, i8* %163), !dbg !914
  %_26 = load [2 x { [0 x i8]*, i64 }]*, [2 x { [0 x i8]*, i64 }]** bitcast ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.52 to [2 x { [0 x i8]*, i64 }]**), align 8, !dbg !915, !nonnull !4
  %_13.0 = bitcast [2 x { [0 x i8]*, i64 }]* %_26 to [0 x { [0 x i8]*, i64 }]*, !dbg !915
  %168 = bitcast [1 x { i8*, i8* }]* %14 to i8*, !dbg !914
  %169 = add i64 %27, 8, !dbg !914
  %170 = inttoptr i64 %169 to i16*, !dbg !914
  store i16 0, i16* %170, align 1, !dbg !914
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %168), !dbg !914
  %171 = bitcast i32** %_20 to i8*, !dbg !914
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %171), !dbg !914
  %_21 = load i32*, i32** %p, align 8, !dbg !916
  store i32* %_21, i32** %_20, align 8, !dbg !914
  %arg0 = load i32*, i32** %_20, align 8, !dbg !914, !nonnull !4
  store i32* %arg0, i32** %arg0.dbg.spill, align 8, !dbg !914
  call void @llvm.dbg.declare(metadata i32** %arg0.dbg.spill, metadata !878, metadata !DIExpression()), !dbg !917
; invoke core::fmt::ArgumentV1::new
  %172 = invoke { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E(i32* noalias readonly align 4 dereferenceable(4) %arg0, i1 (i32*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc0974365d01b28f2E")
          to label %bb9 unwind label %cleanup1, !dbg !917

bb9:                                              ; preds = %bb8
  %_23.0 = extractvalue { i8*, i8* } %172, 0, !dbg !917
  %_23.1 = extractvalue { i8*, i8* } %172, 1, !dbg !917
  %173 = bitcast [1 x { i8*, i8* }]* %14 to { i8*, i8* }*, !dbg !917
  %174 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %173, i32 0, i32 0, !dbg !917
  %175 = ptrtoint i8** %174 to i64, !dbg !917
  %176 = lshr i64 %175, 3, !dbg !917
  %177 = add i64 %176, 2147450880, !dbg !917
  %178 = inttoptr i64 %177 to i8*, !dbg !917
  %179 = load i8, i8* %178, !dbg !917
  %180 = icmp ne i8 %179, 0, !dbg !917
  br i1 %180, label %181, label %182, !dbg !917

181:                                              ; preds = %bb9
  call void @__asan_report_store8(i64 %175), !dbg !917
  call void asm sideeffect "", ""(), !dbg !917
  unreachable, !dbg !917

182:                                              ; preds = %bb9
  store i8* %_23.0, i8** %174, align 8, !dbg !917
  %183 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %173, i32 0, i32 1, !dbg !917
  %184 = ptrtoint i8** %183 to i64, !dbg !917
  %185 = lshr i64 %184, 3, !dbg !917
  %186 = add i64 %185, 2147450880, !dbg !917
  %187 = inttoptr i64 %186 to i8*, !dbg !917
  %188 = load i8, i8* %187, !dbg !917
  %189 = icmp ne i8 %188, 0, !dbg !917
  br i1 %189, label %190, label %191, !dbg !917

190:                                              ; preds = %182
  call void @__asan_report_store8(i64 %184), !dbg !917
  call void asm sideeffect "", ""(), !dbg !917
  unreachable, !dbg !917

191:                                              ; preds = %182
  store i8* %_23.1, i8** %183, align 8, !dbg !917
  %_16.0 = bitcast [1 x { i8*, i8* }]* %14 to [0 x { i8*, i8* }]*, !dbg !914
; invoke core::fmt::Arguments::new_v1
  invoke void @_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %16, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %_13.0, i64 2, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %_16.0, i64 1)
          to label %bb10 unwind label %cleanup1, !dbg !914

bb10:                                             ; preds = %191
; invoke std::io::stdio::_print
  invoke void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48) %16)
          to label %bb11 unwind label %cleanup1, !dbg !914

bb11:                                             ; preds = %bb10
  %192 = bitcast %"core::fmt::Arguments"* %16 to i8*, !dbg !914
  %193 = add i64 %27, 12, !dbg !914
  %194 = inttoptr i64 %193 to i32*, !dbg !914
  store i32 -117901064, i32* %194, align 1, !dbg !914
  %195 = add i64 %27, 16, !dbg !914
  %196 = inttoptr i64 %195 to i16*, !dbg !914
  store i16 -1800, i16* %196, align 1, !dbg !914
  call void @llvm.lifetime.end.p0i8(i64 48, i8* %192), !dbg !914
  %197 = bitcast i32** %_20 to i8*, !dbg !914
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %197), !dbg !914
  %198 = bitcast [1 x { i8*, i8* }]* %14 to i8*, !dbg !914
  %199 = add i64 %27, 8, !dbg !914
  %200 = inttoptr i64 %199 to i16*, !dbg !914
  store i16 -1800, i16* %200, align 1, !dbg !914
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %198), !dbg !914
  %201 = bitcast i32** %p to i8*, !dbg !918
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %201), !dbg !918
  %202 = load i8, i8* %_28, align 1, !dbg !919, !range !222
  %203 = trunc i8 %202 to i1, !dbg !919
  br i1 %203, label %bb18, label %bb12, !dbg !919

bb12:                                             ; preds = %bb18, %bb11
  store i8 0, i8* %_28, align 1, !dbg !919
  %204 = bitcast i32** %18 to i8*, !dbg !919
  %205 = add i64 %27, 22, !dbg !919
  %206 = inttoptr i64 %205 to i8*, !dbg !919
  store i8 -8, i8* %206, align 1, !dbg !919
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %204), !dbg !919
  %207 = load i8, i8* %_27, align 1, !dbg !920, !range !222
  %208 = trunc i8 %207 to i1, !dbg !920
  br i1 %208, label %bb19, label %bb13, !dbg !920

bb13:                                             ; preds = %bb19, %bb12
  store i8 0, i8* %_27, align 1, !dbg !920
  %209 = bitcast i32** %20 to i8*, !dbg !920
  %210 = add i64 %27, 26, !dbg !920
  %211 = inttoptr i64 %210 to i8*, !dbg !920
  store i8 -8, i8* %211, align 1, !dbg !920
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %209), !dbg !920
  store i64 1172321806, i64* %21, !dbg !921
  %212 = icmp ne i64 %5, 0, !dbg !921
  br i1 %212, label %213, label %226, !dbg !921

213:                                              ; preds = %bb13
  %214 = add i64 %27, 0, !dbg !921
  %215 = inttoptr i64 %214 to i64*, !dbg !921
  store i64 -723401728380766731, i64* %215, align 1, !dbg !921
  %216 = add i64 %27, 8, !dbg !921
  %217 = inttoptr i64 %216 to i64*, !dbg !921
  store i64 -723401728380766731, i64* %217, align 1, !dbg !921
  %218 = add i64 %27, 16, !dbg !921
  %219 = inttoptr i64 %218 to i64*, !dbg !921
  store i64 -723401728380766731, i64* %219, align 1, !dbg !921
  %220 = add i64 %27, 24, !dbg !921
  %221 = inttoptr i64 %220 to i64*, !dbg !921
  store i64 -723401728380766731, i64* %221, align 1, !dbg !921
  %222 = add i64 %5, 248, !dbg !921
  %223 = inttoptr i64 %222 to i64*, !dbg !921
  %224 = load i64, i64* %223, !dbg !921
  %225 = inttoptr i64 %224 to i8*, !dbg !921
  store i8 0, i8* %225, !dbg !921
  br label %235, !dbg !921

226:                                              ; preds = %bb13
  %227 = add i64 %27, 0, !dbg !921
  %228 = inttoptr i64 %227 to i64*, !dbg !921
  store i64 0, i64* %228, align 1, !dbg !921
  %229 = add i64 %27, 8, !dbg !921
  %230 = inttoptr i64 %229 to i64*, !dbg !921
  store i64 0, i64* %230, align 1, !dbg !921
  %231 = add i64 %27, 16, !dbg !921
  %232 = inttoptr i64 %231 to i64*, !dbg !921
  store i64 0, i64* %232, align 1, !dbg !921
  %233 = add i64 %27, 24, !dbg !921
  %234 = inttoptr i64 %233 to i64*, !dbg !921
  store i64 0, i64* %234, align 1, !dbg !921
  br label %235, !dbg !921

235:                                              ; preds = %226, %213
  ret void, !dbg !921

bb14:                                             ; preds = %bb15
  store i8 0, i8* %_27, align 1, !dbg !920
; call core::ptr::drop_in_place
  call void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %20) #9, !dbg !920
  br label %bb1, !dbg !920

bb15:                                             ; preds = %bb16, %bb17, %268
  %236 = load i8, i8* %_27, align 1, !dbg !920, !range !222
  %237 = trunc i8 %236 to i1, !dbg !920
  br i1 %237, label %bb14, label %bb1, !dbg !920

bb16:                                             ; preds = %bb17
  store i8 0, i8* %_28, align 1, !dbg !919
; call core::ptr::drop_in_place
  call void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %18) #9, !dbg !919
  br label %bb15, !dbg !919

bb17:                                             ; preds = %297
  %238 = load i8, i8* %_28, align 1, !dbg !919, !range !222
  %239 = trunc i8 %238 to i1, !dbg !919
  br i1 %239, label %bb16, label %bb15, !dbg !919

bb18:                                             ; preds = %bb11
  store i8 0, i8* %_28, align 1, !dbg !919
; invoke core::ptr::drop_in_place
  invoke void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %18)
          to label %bb12 unwind label %cleanup, !dbg !919

bb19:                                             ; preds = %bb12
  store i8 0, i8* %_27, align 1, !dbg !920
; call core::ptr::drop_in_place
  call void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %20), !dbg !920
  br label %bb13, !dbg !920

cleanup:                                          ; preds = %bb2, %bb18
  %240 = landingpad { i8*, i32 }
          cleanup
  %241 = bitcast { i8*, i32 }* %12 to i8*
  %242 = add i64 %27, 4
  %243 = inttoptr i64 %242 to i16*
  store i16 0, i16* %243, align 1
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %241)
  %244 = extractvalue { i8*, i32 } %240, 0
  %245 = extractvalue { i8*, i32 } %240, 1
  %246 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 0
  %247 = ptrtoint i8** %246 to i64
  %248 = lshr i64 %247, 3
  %249 = add i64 %248, 2147450880
  %250 = inttoptr i64 %249 to i8*
  %251 = load i8, i8* %250
  %252 = icmp ne i8 %251, 0
  br i1 %252, label %253, label %254

253:                                              ; preds = %cleanup
  call void @__asan_report_store8(i64 %247)
  call void asm sideeffect "", ""()
  unreachable

254:                                              ; preds = %cleanup
  store i8* %244, i8** %246, align 8
  %255 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 1
  %256 = ptrtoint i32* %255 to i64
  %257 = lshr i64 %256, 3
  %258 = add i64 %257, 2147450880
  %259 = inttoptr i64 %258 to i8*
  %260 = load i8, i8* %259
  %261 = icmp ne i8 %260, 0
  br i1 %261, label %262, label %268, !prof !139

262:                                              ; preds = %254
  %263 = and i64 %256, 7
  %264 = add i64 %263, 3
  %265 = trunc i64 %264 to i8
  %266 = icmp sge i8 %265, %260
  br i1 %266, label %267, label %268

267:                                              ; preds = %262
  call void @__asan_report_store4(i64 %256)
  call void asm sideeffect "", ""()
  unreachable

268:                                              ; preds = %262, %254
  store i32 %245, i32* %255, align 8
  br label %bb15

cleanup1:                                         ; preds = %bb10, %191, %bb8, %154, %162
  %269 = landingpad { i8*, i32 }
          cleanup
  %270 = bitcast { i8*, i32 }* %12 to i8*
  %271 = add i64 %27, 4
  %272 = inttoptr i64 %271 to i16*
  store i16 0, i16* %272, align 1
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %270)
  %273 = extractvalue { i8*, i32 } %269, 0
  %274 = extractvalue { i8*, i32 } %269, 1
  %275 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 0
  %276 = ptrtoint i8** %275 to i64
  %277 = lshr i64 %276, 3
  %278 = add i64 %277, 2147450880
  %279 = inttoptr i64 %278 to i8*
  %280 = load i8, i8* %279
  %281 = icmp ne i8 %280, 0
  br i1 %281, label %282, label %283

282:                                              ; preds = %cleanup1
  call void @__asan_report_store8(i64 %276)
  call void asm sideeffect "", ""()
  unreachable

283:                                              ; preds = %cleanup1
  store i8* %273, i8** %275, align 8
  %284 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 1
  %285 = ptrtoint i32* %284 to i64
  %286 = lshr i64 %285, 3
  %287 = add i64 %286, 2147450880
  %288 = inttoptr i64 %287 to i8*
  %289 = load i8, i8* %288
  %290 = icmp ne i8 %289, 0
  br i1 %290, label %291, label %297, !prof !139

291:                                              ; preds = %283
  %292 = and i64 %285, 7
  %293 = add i64 %292, 3
  %294 = trunc i64 %293 to i8
  %295 = icmp sge i8 %294, %289
  br i1 %295, label %296, label %297

296:                                              ; preds = %291
  call void @__asan_report_store4(i64 %285)
  call void asm sideeffect "", ""()
  unreachable

297:                                              ; preds = %291, %283
  store i32 %274, i32* %284, align 8
  br label %bb17
}

; main::test_reference1
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4main15test_reference117h35f46ec9768b443bE() unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !922 {
start:
  %x.dbg.spill.i = alloca i32, align 4
  call void @llvm.dbg.declare(metadata i32* %x.dbg.spill.i, metadata !881, metadata !DIExpression()), !dbg !929
  %arg0.dbg.spill = alloca i32*, align 8
  %_11 = alloca i32*, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_2(i64 224)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 224, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to { i8*, i32 }*
  %13 = add i64 %10, 64
  %14 = inttoptr i64 %13 to [1 x { i8*, i8* }]*
  %15 = add i64 %10, 96
  %16 = inttoptr i64 %15 to %"core::fmt::Arguments"*
  %17 = add i64 %10, 176
  %18 = inttoptr i64 %17 to i32**
  %19 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %19
  %20 = add i64 %10, 8
  %21 = inttoptr i64 %20 to i64*
  store i64 ptrtoint ([59 x i8]* @___asan_gen_.22 to i64), i64* %21
  %22 = add i64 %10, 16
  %23 = inttoptr i64 %22 to i64*
  store i64 ptrtoint (void ()* @_ZN4main15test_reference117h35f46ec9768b443bE to i64), i64* %23
  %24 = lshr i64 %10, 3
  %25 = add i64 %24, 2147450880
  %26 = add i64 %25, 0
  %27 = inttoptr i64 %26 to i64*
  store i64 -940415624072269327, i64* %27, align 1
  %28 = add i64 %25, 8
  %29 = inttoptr i64 %28 to i64*
  store i64 -506381209967593224, i64* %29, align 1
  %30 = add i64 %25, 16
  %31 = inttoptr i64 %30 to i64*
  store i64 -866675802996803336, i64* %31, align 1
  %32 = add i64 %25, 24
  %33 = inttoptr i64 %32 to i32*
  store i32 -202116109, i32* %33, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !924, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 176)), !dbg !931
  %34 = bitcast i32** %18 to i8*, !dbg !932
  %35 = add i64 %25, 22, !dbg !932
  %36 = inttoptr i64 %35 to i8*, !dbg !932
  store i8 0, i8* %36, align 1, !dbg !932
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %34), !dbg !932
  %37 = bitcast i32* %x.dbg.spill.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %37)
  store i32 5, i32* %x.dbg.spill.i, align 4
; call alloc::alloc::exchange_malloc
  %38 = call i8* @_ZN5alloc5alloc15exchange_malloc17he756f9617b20b78aE(i64 4, i64 4), !dbg !933
  %39 = bitcast i8* %38 to i32*, !dbg !933
  %40 = ptrtoint i32* %39 to i64, !dbg !934
  %41 = lshr i64 %40, 3, !dbg !934
  %42 = add i64 %41, 2147450880, !dbg !934
  %43 = inttoptr i64 %42 to i8*, !dbg !934
  %44 = load i8, i8* %43, !dbg !934
  %45 = icmp ne i8 %44, 0, !dbg !934
  br i1 %45, label %46, label %52, !dbg !934, !prof !139

46:                                               ; preds = %9
  %47 = and i64 %40, 7, !dbg !934
  %48 = add i64 %47, 3, !dbg !934
  %49 = trunc i64 %48 to i8, !dbg !934
  %50 = icmp sge i8 %49, %44, !dbg !934
  br i1 %50, label %51, label %52, !dbg !934

51:                                               ; preds = %46
  call void @__asan_report_store4(i64 %40), !dbg !934
  call void asm sideeffect "", ""()
  unreachable

52:                                               ; preds = %46, %9
  store i32 5, i32* %39, align 4, !dbg !934
  %53 = bitcast i32* %x.dbg.spill.i to i8*, !dbg !935
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %53), !dbg !935
  %54 = ptrtoint i32** %18 to i64, !dbg !936
  %55 = lshr i64 %54, 3, !dbg !936
  %56 = add i64 %55, 2147450880, !dbg !936
  %57 = inttoptr i64 %56 to i8*, !dbg !936
  %58 = load i8, i8* %57, !dbg !936
  %59 = icmp ne i8 %58, 0, !dbg !936
  br i1 %59, label %60, label %61, !dbg !936

60:                                               ; preds = %52
  call void @__asan_report_store8(i64 %54), !dbg !936
  call void asm sideeffect "", ""(), !dbg !936
  unreachable, !dbg !936

61:                                               ; preds = %52
  store i32* %39, i32** %18, align 8, !dbg !936
  br label %bb2, !dbg !936

bb1:                                              ; preds = %bb4
  %62 = bitcast { i8*, i32 }* %12 to i8**, !dbg !937
  %63 = ptrtoint i8** %62 to i64, !dbg !937
  %64 = lshr i64 %63, 3, !dbg !937
  %65 = add i64 %64, 2147450880, !dbg !937
  %66 = inttoptr i64 %65 to i8*, !dbg !937
  %67 = load i8, i8* %66, !dbg !937
  %68 = icmp ne i8 %67, 0, !dbg !937
  br i1 %68, label %69, label %70, !dbg !937

69:                                               ; preds = %bb1
  call void @__asan_report_load8(i64 %63), !dbg !937
  call void asm sideeffect "", ""(), !dbg !937
  unreachable, !dbg !937

70:                                               ; preds = %bb1
  %71 = load i8*, i8** %62, align 8, !dbg !937
  %72 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 1, !dbg !937
  %73 = ptrtoint i32* %72 to i64, !dbg !937
  %74 = lshr i64 %73, 3, !dbg !937
  %75 = add i64 %74, 2147450880, !dbg !937
  %76 = inttoptr i64 %75 to i8*, !dbg !937
  %77 = load i8, i8* %76, !dbg !937
  %78 = icmp ne i8 %77, 0, !dbg !937
  br i1 %78, label %79, label %85, !dbg !937, !prof !139

79:                                               ; preds = %70
  %80 = and i64 %73, 7, !dbg !937
  %81 = add i64 %80, 3, !dbg !937
  %82 = trunc i64 %81 to i8, !dbg !937
  %83 = icmp sge i8 %82, %77, !dbg !937
  br i1 %83, label %84, label %85, !dbg !937

84:                                               ; preds = %79
  call void @__asan_report_load4(i64 %73), !dbg !937
  call void asm sideeffect "", ""()
  unreachable

85:                                               ; preds = %79, %70
  %86 = load i32, i32* %72, align 8, !dbg !937
  %87 = bitcast { i8*, i32 }* %12 to i8*, !dbg !937
  %88 = add i64 %25, 4, !dbg !937
  %89 = inttoptr i64 %88 to i16*, !dbg !937
  store i16 -1800, i16* %89, align 1, !dbg !937
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %87), !dbg !937
  %90 = insertvalue { i8*, i32 } undef, i8* %71, 0, !dbg !937
  %91 = insertvalue { i8*, i32 } %90, i32 %86, 1, !dbg !937
  store i64 1172321806, i64* %19, !dbg !937
  %92 = icmp ne i64 %5, 0, !dbg !937
  br i1 %92, label %93, label %106, !dbg !937

93:                                               ; preds = %85
  %94 = add i64 %25, 0, !dbg !937
  %95 = inttoptr i64 %94 to i64*, !dbg !937
  store i64 -723401728380766731, i64* %95, align 1, !dbg !937
  %96 = add i64 %25, 8, !dbg !937
  %97 = inttoptr i64 %96 to i64*, !dbg !937
  store i64 -723401728380766731, i64* %97, align 1, !dbg !937
  %98 = add i64 %25, 16, !dbg !937
  %99 = inttoptr i64 %98 to i64*, !dbg !937
  store i64 -723401728380766731, i64* %99, align 1, !dbg !937
  %100 = add i64 %25, 24, !dbg !937
  %101 = inttoptr i64 %100 to i64*, !dbg !937
  store i64 -723401728380766731, i64* %101, align 1, !dbg !937
  %102 = add i64 %5, 248, !dbg !937
  %103 = inttoptr i64 %102 to i64*, !dbg !937
  %104 = load i64, i64* %103, !dbg !937
  %105 = inttoptr i64 %104 to i8*, !dbg !937
  store i8 0, i8* %105, !dbg !937
  br label %115, !dbg !937

106:                                              ; preds = %85
  %107 = add i64 %25, 0, !dbg !937
  %108 = inttoptr i64 %107 to i64*, !dbg !937
  store i64 0, i64* %108, align 1, !dbg !937
  %109 = add i64 %25, 8, !dbg !937
  %110 = inttoptr i64 %109 to i64*, !dbg !937
  store i64 0, i64* %110, align 1, !dbg !937
  %111 = add i64 %25, 16, !dbg !937
  %112 = inttoptr i64 %111 to i64*, !dbg !937
  store i64 0, i64* %112, align 1, !dbg !937
  %113 = add i64 %25, 24, !dbg !937
  %114 = inttoptr i64 %113 to i32*, !dbg !937
  store i32 0, i32* %114, align 1, !dbg !937
  br label %115, !dbg !937

115:                                              ; preds = %106, %93
  resume { i8*, i32 } %91, !dbg !937

bb2:                                              ; preds = %61
  %116 = bitcast %"core::fmt::Arguments"* %16 to i8*, !dbg !938
  %117 = add i64 %25, 12, !dbg !938
  %118 = inttoptr i64 %117 to i32*, !dbg !938
  store i32 0, i32* %118, align 1, !dbg !938
  %119 = add i64 %25, 16, !dbg !938
  %120 = inttoptr i64 %119 to i16*, !dbg !938
  store i16 0, i16* %120, align 1, !dbg !938
  call void @llvm.lifetime.start.p0i8(i64 48, i8* %116), !dbg !938
  %_17 = load [2 x { [0 x i8]*, i64 }]*, [2 x { [0 x i8]*, i64 }]** bitcast ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.54 to [2 x { [0 x i8]*, i64 }]**), align 8, !dbg !939, !nonnull !4
  %_4.0 = bitcast [2 x { [0 x i8]*, i64 }]* %_17 to [0 x { [0 x i8]*, i64 }]*, !dbg !939
  %121 = bitcast [1 x { i8*, i8* }]* %14 to i8*, !dbg !938
  %122 = add i64 %25, 8, !dbg !938
  %123 = inttoptr i64 %122 to i16*, !dbg !938
  store i16 0, i16* %123, align 1, !dbg !938
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %121), !dbg !938
  %124 = bitcast i32** %_11 to i8*, !dbg !938
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %124), !dbg !938
  %125 = ptrtoint i32** %18 to i64, !dbg !940
  %126 = lshr i64 %125, 3, !dbg !940
  %127 = add i64 %126, 2147450880, !dbg !940
  %128 = inttoptr i64 %127 to i8*, !dbg !940
  %129 = load i8, i8* %128, !dbg !940
  %130 = icmp ne i8 %129, 0, !dbg !940
  br i1 %130, label %131, label %132, !dbg !940

131:                                              ; preds = %bb2
  call void @__asan_report_load8(i64 %125), !dbg !940
  call void asm sideeffect "", ""(), !dbg !940
  unreachable, !dbg !940

132:                                              ; preds = %bb2
  %_12 = load i32*, i32** %18, align 8, !dbg !940, !nonnull !4
  store i32* %_12, i32** %_11, align 8, !dbg !938
  %arg0 = load i32*, i32** %_11, align 8, !dbg !938, !nonnull !4
  store i32* %arg0, i32** %arg0.dbg.spill, align 8, !dbg !938
  call void @llvm.dbg.declare(metadata i32** %arg0.dbg.spill, metadata !926, metadata !DIExpression()), !dbg !941
; invoke core::fmt::ArgumentV1::new
  %133 = invoke { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E(i32* noalias readonly align 4 dereferenceable(4) %arg0, i1 (i32*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc0974365d01b28f2E")
          to label %bb3 unwind label %cleanup, !dbg !941

bb3:                                              ; preds = %132
  %_14.0 = extractvalue { i8*, i8* } %133, 0, !dbg !941
  %_14.1 = extractvalue { i8*, i8* } %133, 1, !dbg !941
  %134 = bitcast [1 x { i8*, i8* }]* %14 to { i8*, i8* }*, !dbg !941
  %135 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %134, i32 0, i32 0, !dbg !941
  %136 = ptrtoint i8** %135 to i64, !dbg !941
  %137 = lshr i64 %136, 3, !dbg !941
  %138 = add i64 %137, 2147450880, !dbg !941
  %139 = inttoptr i64 %138 to i8*, !dbg !941
  %140 = load i8, i8* %139, !dbg !941
  %141 = icmp ne i8 %140, 0, !dbg !941
  br i1 %141, label %142, label %143, !dbg !941

142:                                              ; preds = %bb3
  call void @__asan_report_store8(i64 %136), !dbg !941
  call void asm sideeffect "", ""(), !dbg !941
  unreachable, !dbg !941

143:                                              ; preds = %bb3
  store i8* %_14.0, i8** %135, align 8, !dbg !941
  %144 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %134, i32 0, i32 1, !dbg !941
  %145 = ptrtoint i8** %144 to i64, !dbg !941
  %146 = lshr i64 %145, 3, !dbg !941
  %147 = add i64 %146, 2147450880, !dbg !941
  %148 = inttoptr i64 %147 to i8*, !dbg !941
  %149 = load i8, i8* %148, !dbg !941
  %150 = icmp ne i8 %149, 0, !dbg !941
  br i1 %150, label %151, label %152, !dbg !941

151:                                              ; preds = %143
  call void @__asan_report_store8(i64 %145), !dbg !941
  call void asm sideeffect "", ""(), !dbg !941
  unreachable, !dbg !941

152:                                              ; preds = %143
  store i8* %_14.1, i8** %144, align 8, !dbg !941
  %_7.0 = bitcast [1 x { i8*, i8* }]* %14 to [0 x { i8*, i8* }]*, !dbg !938
; invoke core::fmt::Arguments::new_v1
  invoke void @_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %16, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %_4.0, i64 2, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %_7.0, i64 1)
          to label %bb5 unwind label %cleanup, !dbg !938

bb4:                                              ; preds = %217
; call core::ptr::drop_in_place
  call void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %18) #9, !dbg !942
  br label %bb1, !dbg !942

bb5:                                              ; preds = %152
; invoke std::io::stdio::_print
  invoke void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48) %16)
          to label %bb6 unwind label %cleanup, !dbg !938

bb6:                                              ; preds = %bb5
  %153 = bitcast %"core::fmt::Arguments"* %16 to i8*, !dbg !938
  %154 = add i64 %25, 12, !dbg !938
  %155 = inttoptr i64 %154 to i32*, !dbg !938
  store i32 -117901064, i32* %155, align 1, !dbg !938
  %156 = add i64 %25, 16, !dbg !938
  %157 = inttoptr i64 %156 to i16*, !dbg !938
  store i16 -1800, i16* %157, align 1, !dbg !938
  call void @llvm.lifetime.end.p0i8(i64 48, i8* %153), !dbg !938
  %158 = bitcast i32** %_11 to i8*, !dbg !938
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %158), !dbg !938
  %159 = bitcast [1 x { i8*, i8* }]* %14 to i8*, !dbg !938
  %160 = add i64 %25, 8, !dbg !938
  %161 = inttoptr i64 %160 to i16*, !dbg !938
  store i16 -1800, i16* %161, align 1, !dbg !938
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %159), !dbg !938
; call core::ptr::drop_in_place
  call void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %18), !dbg !942
  br label %bb7, !dbg !942

bb7:                                              ; preds = %bb6
  %162 = bitcast i32** %18 to i8*, !dbg !942
  %163 = add i64 %25, 22, !dbg !942
  %164 = inttoptr i64 %163 to i8*, !dbg !942
  store i8 -8, i8* %164, align 1, !dbg !942
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %162), !dbg !942
  store i64 1172321806, i64* %19, !dbg !943
  %165 = icmp ne i64 %5, 0, !dbg !943
  br i1 %165, label %166, label %179, !dbg !943

166:                                              ; preds = %bb7
  %167 = add i64 %25, 0, !dbg !943
  %168 = inttoptr i64 %167 to i64*, !dbg !943
  store i64 -723401728380766731, i64* %168, align 1, !dbg !943
  %169 = add i64 %25, 8, !dbg !943
  %170 = inttoptr i64 %169 to i64*, !dbg !943
  store i64 -723401728380766731, i64* %170, align 1, !dbg !943
  %171 = add i64 %25, 16, !dbg !943
  %172 = inttoptr i64 %171 to i64*, !dbg !943
  store i64 -723401728380766731, i64* %172, align 1, !dbg !943
  %173 = add i64 %25, 24, !dbg !943
  %174 = inttoptr i64 %173 to i64*, !dbg !943
  store i64 -723401728380766731, i64* %174, align 1, !dbg !943
  %175 = add i64 %5, 248, !dbg !943
  %176 = inttoptr i64 %175 to i64*, !dbg !943
  %177 = load i64, i64* %176, !dbg !943
  %178 = inttoptr i64 %177 to i8*, !dbg !943
  store i8 0, i8* %178, !dbg !943
  br label %188, !dbg !943

179:                                              ; preds = %bb7
  %180 = add i64 %25, 0, !dbg !943
  %181 = inttoptr i64 %180 to i64*, !dbg !943
  store i64 0, i64* %181, align 1, !dbg !943
  %182 = add i64 %25, 8, !dbg !943
  %183 = inttoptr i64 %182 to i64*, !dbg !943
  store i64 0, i64* %183, align 1, !dbg !943
  %184 = add i64 %25, 16, !dbg !943
  %185 = inttoptr i64 %184 to i64*, !dbg !943
  store i64 0, i64* %185, align 1, !dbg !943
  %186 = add i64 %25, 24, !dbg !943
  %187 = inttoptr i64 %186 to i32*, !dbg !943
  store i32 0, i32* %187, align 1, !dbg !943
  br label %188, !dbg !943

188:                                              ; preds = %179, %166
  ret void, !dbg !943

cleanup:                                          ; preds = %bb5, %152, %132
  %189 = landingpad { i8*, i32 }
          cleanup
  %190 = bitcast { i8*, i32 }* %12 to i8*
  %191 = add i64 %25, 4
  %192 = inttoptr i64 %191 to i16*
  store i16 0, i16* %192, align 1
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %190)
  %193 = extractvalue { i8*, i32 } %189, 0
  %194 = extractvalue { i8*, i32 } %189, 1
  %195 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 0
  %196 = ptrtoint i8** %195 to i64
  %197 = lshr i64 %196, 3
  %198 = add i64 %197, 2147450880
  %199 = inttoptr i64 %198 to i8*
  %200 = load i8, i8* %199
  %201 = icmp ne i8 %200, 0
  br i1 %201, label %202, label %203

202:                                              ; preds = %cleanup
  call void @__asan_report_store8(i64 %196)
  call void asm sideeffect "", ""()
  unreachable

203:                                              ; preds = %cleanup
  store i8* %193, i8** %195, align 8
  %204 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 1
  %205 = ptrtoint i32* %204 to i64
  %206 = lshr i64 %205, 3
  %207 = add i64 %206, 2147450880
  %208 = inttoptr i64 %207 to i8*
  %209 = load i8, i8* %208
  %210 = icmp ne i8 %209, 0
  br i1 %210, label %211, label %217, !prof !139

211:                                              ; preds = %203
  %212 = and i64 %205, 7
  %213 = add i64 %212, 3
  %214 = trunc i64 %213 to i8
  %215 = icmp sge i8 %214, %209
  br i1 %215, label %216, label %217

216:                                              ; preds = %211
  call void @__asan_report_store4(i64 %205)
  call void asm sideeffect "", ""()
  unreachable

217:                                              ; preds = %211, %203
  store i32 %194, i32* %204, align 8
  br label %bb4
}

; main::test_reference2
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4main15test_reference217h7a706991a462b563E(i32* noalias readonly align 4 dereferenceable(4) %p) unnamed_addr #1 !dbg !944 {
start:
  %arg0.dbg.spill = alloca i32*, align 8
  %p.dbg.spill = alloca i32*, align 8
  %_11 = alloca i32*, align 8
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_2(i64 160)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 160, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to [1 x { i8*, i8* }]*
  %13 = add i64 %10, 64
  %14 = inttoptr i64 %13 to %"core::fmt::Arguments"*
  %15 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %15
  %16 = add i64 %10, 8
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ([31 x i8]* @___asan_gen_.23 to i64), i64* %17
  %18 = add i64 %10, 16
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint (void (i32*)* @_ZN4main15test_reference217h7a706991a462b563E to i64), i64* %19
  %20 = lshr i64 %10, 3
  %21 = add i64 %20, 2147450880
  %22 = add i64 %21, 0
  %23 = inttoptr i64 %22 to i64*
  store i64 -940415624072269327, i64* %23, align 1
  %24 = add i64 %21, 8
  %25 = inttoptr i64 %24 to i64*
  store i64 -868076554939729672, i64* %25, align 1
  %26 = add i64 %21, 16
  %27 = inttoptr i64 %26 to i32*
  store i32 -202116109, i32* %27, align 1
  store i32* %p, i32** %p.dbg.spill, align 8
  call void @llvm.dbg.declare(metadata i32** %p.dbg.spill, metadata !948, metadata !DIExpression()), !dbg !952
  %28 = bitcast %"core::fmt::Arguments"* %14 to i8*, !dbg !953
  %29 = add i64 %21, 8, !dbg !953
  %30 = inttoptr i64 %29 to i32*, !dbg !953
  store i32 0, i32* %30, align 1, !dbg !953
  %31 = add i64 %21, 12, !dbg !953
  %32 = inttoptr i64 %31 to i16*, !dbg !953
  store i16 0, i16* %32, align 1, !dbg !953
  call void @llvm.lifetime.start.p0i8(i64 48, i8* %28), !dbg !953
  %_17 = load [2 x { [0 x i8]*, i64 }]*, [2 x { [0 x i8]*, i64 }]** bitcast ({ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.56 to [2 x { [0 x i8]*, i64 }]**), align 8, !dbg !954, !nonnull !4
  %_4.0 = bitcast [2 x { [0 x i8]*, i64 }]* %_17 to [0 x { [0 x i8]*, i64 }]*, !dbg !954
  %33 = bitcast [1 x { i8*, i8* }]* %12 to i8*, !dbg !953
  %34 = add i64 %21, 4, !dbg !953
  %35 = inttoptr i64 %34 to i16*, !dbg !953
  store i16 0, i16* %35, align 1, !dbg !953
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %33), !dbg !953
  %36 = bitcast i32** %_11 to i8*, !dbg !953
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %36), !dbg !953
  store i32* %p, i32** %_11, align 8, !dbg !953
  %arg0 = load i32*, i32** %_11, align 8, !dbg !953, !nonnull !4
  store i32* %arg0, i32** %arg0.dbg.spill, align 8, !dbg !953
  call void @llvm.dbg.declare(metadata i32** %arg0.dbg.spill, metadata !949, metadata !DIExpression()), !dbg !955
; call core::fmt::ArgumentV1::new
  %37 = call { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E(i32* noalias readonly align 4 dereferenceable(4) %arg0, i1 (i32*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc0974365d01b28f2E"), !dbg !955
  %_14.0 = extractvalue { i8*, i8* } %37, 0, !dbg !955
  %_14.1 = extractvalue { i8*, i8* } %37, 1, !dbg !955
  br label %bb1, !dbg !955

bb1:                                              ; preds = %9
  %38 = bitcast [1 x { i8*, i8* }]* %12 to { i8*, i8* }*, !dbg !955
  %39 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %38, i32 0, i32 0, !dbg !955
  %40 = ptrtoint i8** %39 to i64, !dbg !955
  %41 = lshr i64 %40, 3, !dbg !955
  %42 = add i64 %41, 2147450880, !dbg !955
  %43 = inttoptr i64 %42 to i8*, !dbg !955
  %44 = load i8, i8* %43, !dbg !955
  %45 = icmp ne i8 %44, 0, !dbg !955
  br i1 %45, label %46, label %47, !dbg !955

46:                                               ; preds = %bb1
  call void @__asan_report_store8(i64 %40), !dbg !955
  call void asm sideeffect "", ""(), !dbg !955
  unreachable, !dbg !955

47:                                               ; preds = %bb1
  store i8* %_14.0, i8** %39, align 8, !dbg !955
  %48 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %38, i32 0, i32 1, !dbg !955
  %49 = ptrtoint i8** %48 to i64, !dbg !955
  %50 = lshr i64 %49, 3, !dbg !955
  %51 = add i64 %50, 2147450880, !dbg !955
  %52 = inttoptr i64 %51 to i8*, !dbg !955
  %53 = load i8, i8* %52, !dbg !955
  %54 = icmp ne i8 %53, 0, !dbg !955
  br i1 %54, label %55, label %56, !dbg !955

55:                                               ; preds = %47
  call void @__asan_report_store8(i64 %49), !dbg !955
  call void asm sideeffect "", ""(), !dbg !955
  unreachable, !dbg !955

56:                                               ; preds = %47
  store i8* %_14.1, i8** %48, align 8, !dbg !955
  %_7.0 = bitcast [1 x { i8*, i8* }]* %12 to [0 x { i8*, i8* }]*, !dbg !953
; call core::fmt::Arguments::new_v1
  call void @_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %14, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %_4.0, i64 2, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %_7.0, i64 1), !dbg !953
  br label %bb2, !dbg !953

bb2:                                              ; preds = %56
; call std::io::stdio::_print
  call void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48) %14), !dbg !953
  br label %bb3, !dbg !953

bb3:                                              ; preds = %bb2
  %57 = bitcast %"core::fmt::Arguments"* %14 to i8*, !dbg !953
  %58 = add i64 %21, 8, !dbg !953
  %59 = inttoptr i64 %58 to i32*, !dbg !953
  store i32 -117901064, i32* %59, align 1, !dbg !953
  %60 = add i64 %21, 12, !dbg !953
  %61 = inttoptr i64 %60 to i16*, !dbg !953
  store i16 -1800, i16* %61, align 1, !dbg !953
  call void @llvm.lifetime.end.p0i8(i64 48, i8* %57), !dbg !953
  %62 = bitcast i32** %_11 to i8*, !dbg !953
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %62), !dbg !953
  %63 = bitcast [1 x { i8*, i8* }]* %12 to i8*, !dbg !953
  %64 = add i64 %21, 4, !dbg !953
  %65 = inttoptr i64 %64 to i16*, !dbg !953
  store i16 -1800, i16* %65, align 1, !dbg !953
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %63), !dbg !953
  store i64 1172321806, i64* %15, !dbg !956
  %66 = icmp ne i64 %5, 0, !dbg !956
  br i1 %66, label %67, label %80, !dbg !956

67:                                               ; preds = %bb3
  %68 = add i64 %21, 0, !dbg !956
  %69 = inttoptr i64 %68 to i64*, !dbg !956
  store i64 -723401728380766731, i64* %69, align 1, !dbg !956
  %70 = add i64 %21, 8, !dbg !956
  %71 = inttoptr i64 %70 to i64*, !dbg !956
  store i64 -723401728380766731, i64* %71, align 1, !dbg !956
  %72 = add i64 %21, 16, !dbg !956
  %73 = inttoptr i64 %72 to i64*, !dbg !956
  store i64 -723401728380766731, i64* %73, align 1, !dbg !956
  %74 = add i64 %21, 24, !dbg !956
  %75 = inttoptr i64 %74 to i64*, !dbg !956
  store i64 -723401728380766731, i64* %75, align 1, !dbg !956
  %76 = add i64 %5, 248, !dbg !956
  %77 = inttoptr i64 %76 to i64*, !dbg !956
  %78 = load i64, i64* %77, !dbg !956
  %79 = inttoptr i64 %78 to i8*, !dbg !956
  store i8 0, i8* %79, !dbg !956
  br label %87, !dbg !956

80:                                               ; preds = %bb3
  %81 = add i64 %21, 0, !dbg !956
  %82 = inttoptr i64 %81 to i64*, !dbg !956
  store i64 0, i64* %82, align 1, !dbg !956
  %83 = add i64 %21, 8, !dbg !956
  %84 = inttoptr i64 %83 to i64*, !dbg !956
  store i64 0, i64* %84, align 1, !dbg !956
  %85 = add i64 %21, 16, !dbg !956
  %86 = inttoptr i64 %85 to i32*, !dbg !956
  store i32 0, i32* %86, align 1, !dbg !956
  br label %87, !dbg !956

87:                                               ; preds = %80, %67
  ret void, !dbg !956
}

; main::main
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4main4main17h34dc8baaef7ad15dE() unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !957 {
start:
  %x.dbg.spill.i = alloca i32, align 4
  call void @llvm.dbg.declare(metadata i32* %x.dbg.spill.i, metadata !881, metadata !DIExpression()), !dbg !961
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_1(i64 96)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 96, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to { i8*, i32 }*
  %13 = add i64 %10, 64
  %14 = inttoptr i64 %13 to i32**
  %15 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %15
  %16 = add i64 %10, 8
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ([28 x i8]* @___asan_gen_.24 to i64), i64* %17
  %18 = add i64 %10, 16
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint (void ()* @_ZN4main4main17h34dc8baaef7ad15dE to i64), i64* %19
  %20 = lshr i64 %10, 3
  %21 = add i64 %20, 2147450880
  %22 = add i64 %21, 0
  %23 = inttoptr i64 %22 to i64*
  store i64 -940415624072269327, i64* %23, align 1
  %24 = add i64 %21, 8
  %25 = inttoptr i64 %24 to i32*
  store i32 -202116104, i32* %25, align 1
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !959, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 64)), !dbg !963
; call main::test_array
  call void @_ZN4main10test_array17hc0675ced7869a5f4E(i64 1), !dbg !964
  br label %bb2, !dbg !964

bb1:                                              ; preds = %bb7
  %26 = bitcast { i8*, i32 }* %12 to i8**, !dbg !965
  %27 = ptrtoint i8** %26 to i64, !dbg !965
  %28 = lshr i64 %27, 3, !dbg !965
  %29 = add i64 %28, 2147450880, !dbg !965
  %30 = inttoptr i64 %29 to i8*, !dbg !965
  %31 = load i8, i8* %30, !dbg !965
  %32 = icmp ne i8 %31, 0, !dbg !965
  br i1 %32, label %33, label %34, !dbg !965

33:                                               ; preds = %bb1
  call void @__asan_report_load8(i64 %27), !dbg !965
  call void asm sideeffect "", ""(), !dbg !965
  unreachable, !dbg !965

34:                                               ; preds = %bb1
  %35 = load i8*, i8** %26, align 8, !dbg !965
  %36 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 1, !dbg !965
  %37 = ptrtoint i32* %36 to i64, !dbg !965
  %38 = lshr i64 %37, 3, !dbg !965
  %39 = add i64 %38, 2147450880, !dbg !965
  %40 = inttoptr i64 %39 to i8*, !dbg !965
  %41 = load i8, i8* %40, !dbg !965
  %42 = icmp ne i8 %41, 0, !dbg !965
  br i1 %42, label %43, label %49, !dbg !965, !prof !139

43:                                               ; preds = %34
  %44 = and i64 %37, 7, !dbg !965
  %45 = add i64 %44, 3, !dbg !965
  %46 = trunc i64 %45 to i8, !dbg !965
  %47 = icmp sge i8 %46, %41, !dbg !965
  br i1 %47, label %48, label %49, !dbg !965

48:                                               ; preds = %43
  call void @__asan_report_load4(i64 %37), !dbg !965
  call void asm sideeffect "", ""()
  unreachable

49:                                               ; preds = %43, %34
  %50 = load i32, i32* %36, align 8, !dbg !965
  %51 = bitcast { i8*, i32 }* %12 to i8*, !dbg !965
  %52 = add i64 %21, 4, !dbg !965
  %53 = inttoptr i64 %52 to i16*, !dbg !965
  store i16 -1800, i16* %53, align 1, !dbg !965
  call void @llvm.lifetime.end.p0i8(i64 16, i8* %51), !dbg !965
  %54 = insertvalue { i8*, i32 } undef, i8* %35, 0, !dbg !965
  %55 = insertvalue { i8*, i32 } %54, i32 %50, 1, !dbg !965
  store i64 1172321806, i64* %15, !dbg !965
  %56 = icmp ne i64 %5, 0, !dbg !965
  br i1 %56, label %57, label %66, !dbg !965

57:                                               ; preds = %49
  %58 = add i64 %21, 0, !dbg !965
  %59 = inttoptr i64 %58 to i64*, !dbg !965
  store i64 -723401728380766731, i64* %59, align 1, !dbg !965
  %60 = add i64 %21, 8, !dbg !965
  %61 = inttoptr i64 %60 to i64*, !dbg !965
  store i64 -723401728380766731, i64* %61, align 1, !dbg !965
  %62 = add i64 %5, 120, !dbg !965
  %63 = inttoptr i64 %62 to i64*, !dbg !965
  %64 = load i64, i64* %63, !dbg !965
  %65 = inttoptr i64 %64 to i8*, !dbg !965
  store i8 0, i8* %65, !dbg !965
  br label %71, !dbg !965

66:                                               ; preds = %49
  %67 = add i64 %21, 0, !dbg !965
  %68 = inttoptr i64 %67 to i64*, !dbg !965
  store i64 0, i64* %68, align 1, !dbg !965
  %69 = add i64 %21, 8, !dbg !965
  %70 = inttoptr i64 %69 to i32*, !dbg !965
  store i32 0, i32* %70, align 1, !dbg !965
  br label %71, !dbg !965

71:                                               ; preds = %66, %57
  resume { i8*, i32 } %55, !dbg !965

bb2:                                              ; preds = %9
; call main::test_box
  call void @_ZN4main8test_box17hded4a61e18da0747E(i32 0), !dbg !966
  br label %bb3, !dbg !966

bb3:                                              ; preds = %bb2
; call main::test_local
  call void @_ZN4main10test_local17h6fce92d1a2065c63E(i32 4), !dbg !967
  br label %bb4, !dbg !967

bb4:                                              ; preds = %bb3
  %72 = bitcast i32** %14 to i8*, !dbg !968
  %73 = add i64 %21, 8, !dbg !968
  %74 = inttoptr i64 %73 to i8*, !dbg !968
  store i8 0, i8* %74, align 1, !dbg !968
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %72), !dbg !968
  %75 = bitcast i32* %x.dbg.spill.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %75)
  store i32 6, i32* %x.dbg.spill.i, align 4
; call alloc::alloc::exchange_malloc
  %76 = call i8* @_ZN5alloc5alloc15exchange_malloc17he756f9617b20b78aE(i64 4, i64 4), !dbg !969
  %77 = bitcast i8* %76 to i32*, !dbg !969
  %78 = ptrtoint i32* %77 to i64, !dbg !970
  %79 = lshr i64 %78, 3, !dbg !970
  %80 = add i64 %79, 2147450880, !dbg !970
  %81 = inttoptr i64 %80 to i8*, !dbg !970
  %82 = load i8, i8* %81, !dbg !970
  %83 = icmp ne i8 %82, 0, !dbg !970
  br i1 %83, label %84, label %90, !dbg !970, !prof !139

84:                                               ; preds = %bb4
  %85 = and i64 %78, 7, !dbg !970
  %86 = add i64 %85, 3, !dbg !970
  %87 = trunc i64 %86 to i8, !dbg !970
  %88 = icmp sge i8 %87, %82, !dbg !970
  br i1 %88, label %89, label %90, !dbg !970

89:                                               ; preds = %84
  call void @__asan_report_store4(i64 %78), !dbg !970
  call void asm sideeffect "", ""()
  unreachable

90:                                               ; preds = %84, %bb4
  store i32 6, i32* %77, align 4, !dbg !970
  %91 = bitcast i32* %x.dbg.spill.i to i8*, !dbg !971
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %91), !dbg !971
  %92 = ptrtoint i32** %14 to i64, !dbg !972
  %93 = lshr i64 %92, 3, !dbg !972
  %94 = add i64 %93, 2147450880, !dbg !972
  %95 = inttoptr i64 %94 to i8*, !dbg !972
  %96 = load i8, i8* %95, !dbg !972
  %97 = icmp ne i8 %96, 0, !dbg !972
  br i1 %97, label %98, label %99, !dbg !972

98:                                               ; preds = %90
  call void @__asan_report_store8(i64 %92), !dbg !972
  call void asm sideeffect "", ""(), !dbg !972
  unreachable, !dbg !972

99:                                               ; preds = %90
  store i32* %77, i32** %14, align 8, !dbg !972
  br label %bb5, !dbg !972

bb5:                                              ; preds = %99
; invoke main::test_reference1
  invoke void @_ZN4main15test_reference117h35f46ec9768b443bE()
          to label %bb6 unwind label %cleanup, !dbg !973

bb6:                                              ; preds = %bb5
  %100 = ptrtoint i32** %14 to i64, !dbg !974
  %101 = lshr i64 %100, 3, !dbg !974
  %102 = add i64 %101, 2147450880, !dbg !974
  %103 = inttoptr i64 %102 to i8*, !dbg !974
  %104 = load i8, i8* %103, !dbg !974
  %105 = icmp ne i8 %104, 0, !dbg !974
  br i1 %105, label %106, label %107, !dbg !974

106:                                              ; preds = %bb6
  call void @__asan_report_load8(i64 %100), !dbg !974
  call void asm sideeffect "", ""(), !dbg !974
  unreachable, !dbg !974

107:                                              ; preds = %bb6
  %_7 = load i32*, i32** %14, align 8, !dbg !974, !nonnull !4
; invoke main::test_reference2
  invoke void @_ZN4main15test_reference217h7a706991a462b563E(i32* noalias readonly align 4 dereferenceable(4) %_7)
          to label %bb8 unwind label %cleanup, !dbg !975

bb7:                                              ; preds = %155
; call core::ptr::drop_in_place
  call void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %14) #9, !dbg !976
  br label %bb1, !dbg !976

bb8:                                              ; preds = %107
; call core::ptr::drop_in_place
  call void @_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E(i32** %14), !dbg !976
  br label %bb9, !dbg !976

bb9:                                              ; preds = %bb8
  %108 = bitcast i32** %14 to i8*, !dbg !976
  %109 = add i64 %21, 8, !dbg !976
  %110 = inttoptr i64 %109 to i8*, !dbg !976
  store i8 -8, i8* %110, align 1, !dbg !976
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %108), !dbg !976
  store i64 1172321806, i64* %15, !dbg !977
  %111 = icmp ne i64 %5, 0, !dbg !977
  br i1 %111, label %112, label %121, !dbg !977

112:                                              ; preds = %bb9
  %113 = add i64 %21, 0, !dbg !977
  %114 = inttoptr i64 %113 to i64*, !dbg !977
  store i64 -723401728380766731, i64* %114, align 1, !dbg !977
  %115 = add i64 %21, 8, !dbg !977
  %116 = inttoptr i64 %115 to i64*, !dbg !977
  store i64 -723401728380766731, i64* %116, align 1, !dbg !977
  %117 = add i64 %5, 120, !dbg !977
  %118 = inttoptr i64 %117 to i64*, !dbg !977
  %119 = load i64, i64* %118, !dbg !977
  %120 = inttoptr i64 %119 to i8*, !dbg !977
  store i8 0, i8* %120, !dbg !977
  br label %126, !dbg !977

121:                                              ; preds = %bb9
  %122 = add i64 %21, 0, !dbg !977
  %123 = inttoptr i64 %122 to i64*, !dbg !977
  store i64 0, i64* %123, align 1, !dbg !977
  %124 = add i64 %21, 8, !dbg !977
  %125 = inttoptr i64 %124 to i32*, !dbg !977
  store i32 0, i32* %125, align 1, !dbg !977
  br label %126, !dbg !977

126:                                              ; preds = %121, %112
  ret void, !dbg !977

cleanup:                                          ; preds = %107, %bb5
  %127 = landingpad { i8*, i32 }
          cleanup
  %128 = bitcast { i8*, i32 }* %12 to i8*
  %129 = add i64 %21, 4
  %130 = inttoptr i64 %129 to i16*
  store i16 0, i16* %130, align 1
  call void @llvm.lifetime.start.p0i8(i64 16, i8* %128)
  %131 = extractvalue { i8*, i32 } %127, 0
  %132 = extractvalue { i8*, i32 } %127, 1
  %133 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 0
  %134 = ptrtoint i8** %133 to i64
  %135 = lshr i64 %134, 3
  %136 = add i64 %135, 2147450880
  %137 = inttoptr i64 %136 to i8*
  %138 = load i8, i8* %137
  %139 = icmp ne i8 %138, 0
  br i1 %139, label %140, label %141

140:                                              ; preds = %cleanup
  call void @__asan_report_store8(i64 %134)
  call void asm sideeffect "", ""()
  unreachable

141:                                              ; preds = %cleanup
  store i8* %131, i8** %133, align 8
  %142 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %12, i32 0, i32 1
  %143 = ptrtoint i32* %142 to i64
  %144 = lshr i64 %143, 3
  %145 = add i64 %144, 2147450880
  %146 = inttoptr i64 %145 to i8*
  %147 = load i8, i8* %146
  %148 = icmp ne i8 %147, 0
  br i1 %148, label %149, label %155, !prof !139

149:                                              ; preds = %141
  %150 = and i64 %143, 7
  %151 = add i64 %150, 3
  %152 = trunc i64 %151 to i8
  %153 = icmp sge i8 %152, %147
  br i1 %153, label %154, label %155

154:                                              ; preds = %149
  call void @__asan_report_store4(i64 %143)
  call void asm sideeffect "", ""()
  unreachable

155:                                              ; preds = %149, %141
  store i32 %132, i32* %142, align 8
  br label %bb7
}

; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #3

; std::rt::lang_start_internal
; Function Attrs: nonlazybind sanitize_address uwtable
declare i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1, [3 x i64]* noalias readonly align 8 dereferenceable(24), i64, i8**) unnamed_addr #1

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #3

; core::fmt::Formatter::debug_lower_hex
; Function Attrs: nonlazybind sanitize_address uwtable
declare zeroext i1 @_ZN4core3fmt9Formatter15debug_lower_hex17h68b810b761abe09bE(%"core::fmt::Formatter"* noalias readonly align 8 dereferenceable(64)) unnamed_addr #1

; core::fmt::num::<impl core::fmt::LowerHex for i32>::fmt
; Function Attrs: nonlazybind sanitize_address uwtable
declare zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i32$GT$3fmt17h19ab7be5b0fb7587E"(i32* noalias readonly align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #1

; core::fmt::Formatter::debug_upper_hex
; Function Attrs: nonlazybind sanitize_address uwtable
declare zeroext i1 @_ZN4core3fmt9Formatter15debug_upper_hex17h20623f52650bb644E(%"core::fmt::Formatter"* noalias readonly align 8 dereferenceable(64)) unnamed_addr #1

; core::fmt::num::<impl core::fmt::UpperHex for i32>::fmt
; Function Attrs: nonlazybind sanitize_address uwtable
declare zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i32$GT$3fmt17hd8a7bd4ba29743b9E"(i32* noalias readonly align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #1

; core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt
; Function Attrs: nonlazybind sanitize_address uwtable
declare zeroext i1 @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17hbb27e86dfb8ce1d4E"(i32* noalias readonly align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #1

; Function Attrs: nounwind nonlazybind sanitize_address uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #4

; Function Attrs: nounwind nonlazybind sanitize_address uwtable
declare i8* @__rust_alloc_zeroed(i64, i64) unnamed_addr #4

; alloc::alloc::handle_alloc_error
; Function Attrs: noreturn nounwind nonlazybind sanitize_address uwtable
declare void @_ZN5alloc5alloc18handle_alloc_error17he602a36a7d59d201E(i64, i64) unnamed_addr #5

; Function Attrs: nounwind nonlazybind sanitize_address uwtable
declare noalias i8* @__rust_alloc(i64, i64) unnamed_addr #4

; Function Attrs: nounwind nonlazybind sanitize_address uwtable
declare void @__rust_dealloc(i8*, i64, i64) unnamed_addr #4

; Function Attrs: nounwind readnone speculatable willreturn
declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) #2

; Function Attrs: nounwind readnone willreturn
declare i1 @llvm.expect.i1(i1, i1) #6

; core::panicking::panic
; Function Attrs: cold noinline noreturn nonlazybind sanitize_address uwtable
declare void @_ZN4core9panicking5panic17h68e56c2eeba99c8cE([0 x i8]* noalias nonnull readonly align 1, i64, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24)) unnamed_addr #7

; std::io::stdio::_print
; Function Attrs: nonlazybind sanitize_address uwtable
declare void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr #1

; core::panicking::panic_bounds_check
; Function Attrs: cold noinline noreturn nonlazybind sanitize_address uwtable
declare void @_ZN4core9panicking18panic_bounds_check17hdef4fff11e167a6aE(i64, i64, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24)) unnamed_addr #7

; Function Attrs: nonlazybind sanitize_address
define i32 @main(i32 %0, i8** %1) unnamed_addr #8 {
top:
  %2 = load volatile i8, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @__rustc_debug_gdb_scripts_section__, i32 0, i32 0), align 1
  %3 = sext i32 %0 to i64
; call std::rt::lang_start
  %4 = call i64 @_ZN3std2rt10lang_start17hfe0ca30c48e1a8eaE(void ()* @_ZN4main4main17h34dc8baaef7ad15dE, i64 %3, i8** %1)
  %5 = trunc i64 %4 to i32
  ret i32 %5
}

declare void @__asan_report_load_n(i64, i64)

declare void @__asan_loadN(i64, i64)

declare void @__asan_report_load1(i64)

declare void @__asan_load1(i64)

declare void @__asan_report_load2(i64)

declare void @__asan_load2(i64)

declare void @__asan_report_load4(i64)

declare void @__asan_load4(i64)

declare void @__asan_report_load8(i64)

declare void @__asan_load8(i64)

declare void @__asan_report_load16(i64)

declare void @__asan_load16(i64)

declare void @__asan_report_store_n(i64, i64)

declare void @__asan_storeN(i64, i64)

declare void @__asan_report_store1(i64)

declare void @__asan_store1(i64)

declare void @__asan_report_store2(i64)

declare void @__asan_store2(i64)

declare void @__asan_report_store4(i64)

declare void @__asan_store4(i64)

declare void @__asan_report_store8(i64)

declare void @__asan_store8(i64)

declare void @__asan_report_store16(i64)

declare void @__asan_store16(i64)

declare void @__asan_report_exp_load_n(i64, i64, i32)

declare void @__asan_exp_loadN(i64, i64, i32)

declare void @__asan_report_exp_load1(i64, i32)

declare void @__asan_exp_load1(i64, i32)

declare void @__asan_report_exp_load2(i64, i32)

declare void @__asan_exp_load2(i64, i32)

declare void @__asan_report_exp_load4(i64, i32)

declare void @__asan_exp_load4(i64, i32)

declare void @__asan_report_exp_load8(i64, i32)

declare void @__asan_exp_load8(i64, i32)

declare void @__asan_report_exp_load16(i64, i32)

declare void @__asan_exp_load16(i64, i32)

declare void @__asan_report_exp_store_n(i64, i64, i32)

declare void @__asan_exp_storeN(i64, i64, i32)

declare void @__asan_report_exp_store1(i64, i32)

declare void @__asan_exp_store1(i64, i32)

declare void @__asan_report_exp_store2(i64, i32)

declare void @__asan_exp_store2(i64, i32)

declare void @__asan_report_exp_store4(i64, i32)

declare void @__asan_exp_store4(i64, i32)

declare void @__asan_report_exp_store8(i64, i32)

declare void @__asan_exp_store8(i64, i32)

declare void @__asan_report_exp_store16(i64, i32)

declare void @__asan_exp_store16(i64, i32)

declare i8* @__asan_memmove(i8*, i8*, i64)

declare i8* @__asan_memcpy(i8*, i8*, i64)

declare i8* @__asan_memset(i8*, i32, i64)

declare void @__asan_handle_no_return()

declare void @__sanitizer_ptr_cmp(i64, i64)

declare void @__sanitizer_ptr_sub(i64, i64)

declare i64 @__asan_stack_malloc_0(i64)

declare void @__asan_stack_free_0(i64, i64)

declare i64 @__asan_stack_malloc_1(i64)

declare void @__asan_stack_free_1(i64, i64)

declare i64 @__asan_stack_malloc_2(i64)

declare void @__asan_stack_free_2(i64, i64)

declare i64 @__asan_stack_malloc_3(i64)

declare void @__asan_stack_free_3(i64, i64)

declare i64 @__asan_stack_malloc_4(i64)

declare void @__asan_stack_free_4(i64, i64)

declare i64 @__asan_stack_malloc_5(i64)

declare void @__asan_stack_free_5(i64, i64)

declare i64 @__asan_stack_malloc_6(i64)

declare void @__asan_stack_free_6(i64, i64)

declare i64 @__asan_stack_malloc_7(i64)

declare void @__asan_stack_free_7(i64, i64)

declare i64 @__asan_stack_malloc_8(i64)

declare void @__asan_stack_free_8(i64, i64)

declare i64 @__asan_stack_malloc_9(i64)

declare void @__asan_stack_free_9(i64, i64)

declare i64 @__asan_stack_malloc_10(i64)

declare void @__asan_stack_free_10(i64, i64)

declare void @__asan_poison_stack_memory(i64, i64)

declare void @__asan_unpoison_stack_memory(i64, i64)

declare void @__asan_set_shadow_00(i64, i64)

declare void @__asan_set_shadow_f1(i64, i64)

declare void @__asan_set_shadow_f2(i64, i64)

declare void @__asan_set_shadow_f3(i64, i64)

declare void @__asan_set_shadow_f5(i64, i64)

declare void @__asan_set_shadow_f8(i64, i64)

declare void @__asan_alloca_poison(i64, i64)

declare void @__asan_allocas_unpoison(i64, i64)

declare void @__asan_before_dynamic_init(i64)

declare void @__asan_after_dynamic_init()

declare void @__asan_register_globals(i64, i64)

declare void @__asan_unregister_globals(i64, i64)

declare void @__asan_register_image_globals(i64)

declare void @__asan_unregister_image_globals(i64)

declare void @__asan_register_elf_globals(i64, i64, i64)

declare void @__asan_unregister_elf_globals(i64, i64, i64)

declare void @__asan_init()

define internal void @asan.module_ctor() comdat {
  call void @__asan_init()
  call void @__asan_version_mismatch_check_v8()
  call void @__asan_register_elf_globals(i64 ptrtoint (i64* @___asan_globals_registered to i64), i64 ptrtoint (i64* @__start_asan_globals to i64), i64 ptrtoint (i64* @__stop_asan_globals to i64))
  ret void
}

declare void @__asan_version_mismatch_check_v8()

define internal void @asan.module_dtor() comdat {
  call void @__asan_unregister_elf_globals(i64 ptrtoint (i64* @___asan_globals_registered to i64), i64 ptrtoint (i64* @__start_asan_globals to i64), i64 ptrtoint (i64* @__stop_asan_globals to i64))
  ret void
}

attributes #0 = { inlinehint nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #1 = { nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #2 = { nounwind readnone speculatable willreturn }
attributes #3 = { argmemonly nounwind willreturn }
attributes #4 = { nounwind nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #5 = { noreturn nounwind nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #6 = { nounwind readnone willreturn }
attributes #7 = { cold noinline noreturn nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #8 = { nonlazybind sanitize_address "target-cpu"="x86-64" }
attributes #9 = { noinline }

!llvm.module.flags = !{!37, !38, !39, !40}
!llvm.dbg.cu = !{!41}

!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
!1 = distinct !DIGlobalVariable(name: "vtable", scope: null, file: !2, type: !3, isLocal: true, isDefinition: true)
!2 = !DIFile(filename: "<unknown>", directory: "")
!3 = !DICompositeType(tag: DW_TAG_structure_type, name: "vtable", file: !2, align: 64, flags: DIFlagArtificial, elements: !4, vtableHolder: !5, identifier: "vtable")
!4 = !{}
!5 = !DICompositeType(tag: DW_TAG_structure_type, name: "closure-0", scope: !6, file: !2, size: 64, align: 64, elements: !9, templateParams: !4, identifier: "30e6ecfd0796128d83149dc1f9ab4ee3")
!6 = !DINamespace(name: "lang_start", scope: !7)
!7 = !DINamespace(name: "rt", scope: !8)
!8 = !DINamespace(name: "std", scope: null)
!9 = !{!10}
!10 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !5, file: !2, baseType: !11, size: 64, align: 64)
!11 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn()", baseType: !12, size: 64, align: 64, dwarfAddressSpace: 0)
!12 = !DISubroutineType(types: !13)
!13 = !{null}
!14 = !{{ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0}
!15 = !{{ <{ [12 x i8] }>, [52 x i8] }* @alloc16}
!16 = !{{ <{ [1 x i8] }>, [63 x i8] }* @alloc29}
!17 = !{{ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc18}
!18 = !{{ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global}
!19 = !{{ <{ [11 x i8] }>, [53 x i8] }* @alloc57}
!20 = !{{ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc52}
!21 = !{{ [28 x i8], [36 x i8] }* @str.1}
!22 = !{{ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc54}
!23 = !{{ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc56}
!24 = !{{ <{ [12 x i8] }>, [52 x i8] }* @alloc3}
!25 = !{{ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc5}
!26 = !{{ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.50}
!27 = !{{ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc58}
!28 = !{{ <{ [10 x i8] }>, [54 x i8] }* @alloc10}
!29 = !{{ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc12}
!30 = !{{ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.52}
!31 = !{{ <{ [17 x i8] }>, [47 x i8] }* @alloc22}
!32 = !{{ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc24}
!33 = !{{ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.54}
!34 = !{{ <{ [17 x i8] }>, [47 x i8] }* @alloc28}
!35 = !{{ <{ i8*, [8 x i8], i8*, [8 x i8] }>, [32 x i8] }* @alloc30}
!36 = !{{ <{ i8*, [0 x i8] }>, [56 x i8] }* @___asan_gen__anon_global.56}
!37 = !{i32 7, !"PIC Level", i32 2}
!38 = !{i32 7, !"PIE Level", i32 2}
!39 = !{i32 2, !"RtLibUseGOT", i32 1}
!40 = !{i32 2, !"Debug Info Version", i32 3}
!41 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !42, producer: "clang LLVM (rustc version 1.46.0-nightly (feb3536eb 2020-06-09))", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !43, globals: !65)
!42 = !DIFile(filename: "src/main.rs", directory: "/home/vagrant/proj/rust/mycode/rust_test")
!43 = !{!44, !51, !60}
!44 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Result", scope: !45, file: !2, baseType: !47, size: 8, align: 8, flags: DIFlagEnumClass, elements: !48)
!45 = !DINamespace(name: "result", scope: !46)
!46 = !DINamespace(name: "core", scope: null)
!47 = !DIBasicType(name: "u8", size: 8, encoding: DW_ATE_unsigned)
!48 = !{!49, !50}
!49 = !DIEnumerator(name: "Ok", value: 0)
!50 = !DIEnumerator(name: "Err", value: 1)
!51 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Alignment", scope: !52, file: !2, baseType: !47, size: 8, align: 8, flags: DIFlagEnumClass, elements: !55)
!52 = !DINamespace(name: "v1", scope: !53)
!53 = !DINamespace(name: "rt", scope: !54)
!54 = !DINamespace(name: "fmt", scope: !46)
!55 = !{!56, !57, !58, !59}
!56 = !DIEnumerator(name: "Left", value: 0)
!57 = !DIEnumerator(name: "Right", value: 1)
!58 = !DIEnumerator(name: "Center", value: 2)
!59 = !DIEnumerator(name: "Unknown", value: 3)
!60 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "AllocInit", scope: !61, file: !2, baseType: !47, size: 8, align: 8, flags: DIFlagEnumClass, elements: !62)
!61 = !DINamespace(name: "alloc", scope: !46)
!62 = !{!63, !64}
!63 = !DIEnumerator(name: "Uninitialized", value: 0)
!64 = !DIEnumerator(name: "Zeroed", value: 1)
!65 = !{!0}
!66 = distinct !DISubprogram(name: "from<u8>", linkageName: "_ZN119_$LT$core..ptr..non_null..NonNull$LT$T$GT$$u20$as$u20$core..convert..From$LT$core..ptr..unique..Unique$LT$T$GT$$GT$$GT$4from17hebb4f7d1d876b96dE", scope: !68, file: !67, line: 273, type: !71, scopeLine: 273, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !77, retainedNodes: !86)
!67 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ptr/non_null.rs", directory: "", checksumkind: CSK_MD5, checksum: "161c1f76bd534a03ac2472b9f58fe49b")
!68 = !DINamespace(name: "{{impl}}", scope: !69)
!69 = !DINamespace(name: "non_null", scope: !70)
!70 = !DINamespace(name: "ptr", scope: !46)
!71 = !DISubroutineType(types: !72)
!72 = !{!73, !79}
!73 = !DICompositeType(tag: DW_TAG_structure_type, name: "NonNull<u8>", scope: !69, file: !2, size: 64, align: 64, elements: !74, templateParams: !77, identifier: "c14b1ad1046f517476a4a0542cf59f91")
!74 = !{!75}
!75 = !DIDerivedType(tag: DW_TAG_member, name: "pointer", scope: !73, file: !2, baseType: !76, size: 64, align: 64)
!76 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const u8", baseType: !47, size: 64, align: 64, dwarfAddressSpace: 0)
!77 = !{!78}
!78 = !DITemplateTypeParameter(name: "T", type: !47)
!79 = !DICompositeType(tag: DW_TAG_structure_type, name: "Unique<u8>", scope: !80, file: !2, size: 64, align: 64, elements: !81, templateParams: !77, identifier: "fc784c21b1fb91ccc58dabff0417308")
!80 = !DINamespace(name: "unique", scope: !70)
!81 = !{!82, !83}
!82 = !DIDerivedType(tag: DW_TAG_member, name: "pointer", scope: !79, file: !2, baseType: !76, size: 64, align: 64)
!83 = !DIDerivedType(tag: DW_TAG_member, name: "_marker", scope: !79, file: !2, baseType: !84, align: 8)
!84 = !DICompositeType(tag: DW_TAG_structure_type, name: "PhantomData<u8>", scope: !85, file: !2, align: 8, elements: !4, templateParams: !77, identifier: "4361e6c817f161b6a2a77a0a00434358")
!85 = !DINamespace(name: "marker", scope: !46)
!86 = !{!87}
!87 = !DILocalVariable(name: "unique", arg: 1, scope: !66, file: !67, line: 273, type: !79)
!88 = !DILocation(line: 273, column: 13, scope: !66)
!89 = !DILocation(line: 276, column: 41, scope: !66)
!90 = !DILocation(line: 276, column: 18, scope: !66)
!91 = !DILocation(line: 277, column: 6, scope: !66)
!92 = distinct !DISubprogram(name: "lang_start<()>", linkageName: "_ZN3std2rt10lang_start17hfe0ca30c48e1a8eaE", scope: !7, file: !93, line: 62, type: !94, scopeLine: 62, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !102, retainedNodes: !98)
!93 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/rt.rs", directory: "", checksumkind: CSK_MD5, checksum: "580128330782ec7d1bbdaeb3149adfa0")
!94 = !DISubroutineType(types: !95)
!95 = !{!96, !11, !96, !97}
!96 = !DIBasicType(name: "isize", size: 64, encoding: DW_ATE_signed)
!97 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const *const u8", baseType: !76, size: 64, align: 64, dwarfAddressSpace: 0)
!98 = !{!99, !100, !101}
!99 = !DILocalVariable(name: "main", arg: 1, scope: !92, file: !93, line: 63, type: !11)
!100 = !DILocalVariable(name: "argc", arg: 2, scope: !92, file: !93, line: 64, type: !96)
!101 = !DILocalVariable(name: "argv", arg: 3, scope: !92, file: !93, line: 65, type: !97)
!102 = !{!103}
!103 = !DITemplateTypeParameter(name: "T", type: !104)
!104 = !DIBasicType(name: "()", encoding: DW_ATE_unsigned)
!105 = !DILocation(line: 63, column: 5, scope: !92)
!106 = !DILocation(line: 64, column: 5, scope: !92)
!107 = !DILocation(line: 65, column: 5, scope: !92)
!108 = !DILocation(line: 67, column: 26, scope: !92)
!109 = !DILocation(line: 67, column: 25, scope: !92)
!110 = !DILocation(line: 67, column: 5, scope: !92)
!111 = !DILocation(line: 68, column: 1, scope: !92)
!112 = !DILocation(line: 68, column: 2, scope: !92)
!113 = distinct !DISubprogram(name: "{{closure}}<()>", linkageName: "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h5d4badd86b1e7272E", scope: !6, file: !93, line: 67, type: !114, scopeLine: 67, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !102, retainedNodes: !118)
!114 = !DISubroutineType(types: !115)
!115 = !{!116, !117}
!116 = !DIBasicType(name: "i32", size: 32, encoding: DW_ATE_signed)
!117 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&closure-0", baseType: !5, size: 64, align: 64, dwarfAddressSpace: 0)
!118 = !{!119}
!119 = !DILocalVariable(name: "main", scope: !113, file: !93, line: 63, type: !11, align: 8)
!120 = !DILocation(line: 63, column: 5, scope: !113)
!121 = !DILocation(line: 67, column: 34, scope: !113)
!122 = !DILocation(line: 67, column: 49, scope: !113)
!123 = distinct !DISubprogram(name: "as_i32", linkageName: "_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217hb308a870ec7ca366E", scope: !125, file: !124, line: 398, type: !132, scopeLine: 398, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !135)
!124 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/sys/unix/process/process_common.rs", directory: "", checksumkind: CSK_MD5, checksum: "620f5402e8ba314453e210d5cb93d802")
!125 = !DICompositeType(tag: DW_TAG_structure_type, name: "ExitCode", scope: !126, file: !2, size: 8, align: 8, elements: !130, templateParams: !4, identifier: "904fd8e0e1db8d48b830536eea7f523e")
!126 = !DINamespace(name: "process_common", scope: !127)
!127 = !DINamespace(name: "process", scope: !128)
!128 = !DINamespace(name: "unix", scope: !129)
!129 = !DINamespace(name: "sys", scope: !8)
!130 = !{!131}
!131 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !125, file: !2, baseType: !47, size: 8, align: 8)
!132 = !DISubroutineType(types: !133)
!133 = !{!116, !134}
!134 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&std::sys::unix::process::process_common::ExitCode", baseType: !125, size: 64, align: 64, dwarfAddressSpace: 0)
!135 = !{!136}
!136 = !DILocalVariable(name: "self", arg: 1, scope: !123, file: !124, line: 398, type: !134)
!137 = !DILocation(line: 398, column: 19, scope: !123)
!138 = !DILocation(line: 399, column: 9, scope: !123)
!139 = !{!"branch_weights", i32 1, i32 100000}
!140 = !DILocation(line: 400, column: 6, scope: !123)
!141 = distinct !DISubprogram(name: "new<i32>", linkageName: "_ZN4core3fmt10ArgumentV13new17h944159b91d68b4a8E", scope: !143, file: !142, line: 281, type: !188, scopeLine: 281, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !197, retainedNodes: !194)
!142 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/fmt/mod.rs", directory: "", checksumkind: CSK_MD5, checksum: "d51e9a53dcfda96bc5d8d2f208c290b9")
!143 = !DICompositeType(tag: DW_TAG_structure_type, name: "ArgumentV1", scope: !54, file: !2, size: 128, align: 64, elements: !144, templateParams: !4, identifier: "abbf711f5a27fb4ab3f51044eabcb5b9")
!144 = !{!145, !148}
!145 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !143, file: !2, baseType: !146, size: 64, align: 64)
!146 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&core::fmt::::Opaque", baseType: !147, size: 64, align: 64, dwarfAddressSpace: 0)
!147 = !DICompositeType(tag: DW_TAG_structure_type, name: "Opaque", file: !2, align: 8, elements: !4, identifier: "933c26e667514c2ab87e217ed594690f")
!148 = !DIDerivedType(tag: DW_TAG_member, name: "formatter", scope: !143, file: !2, baseType: !149, size: 64, align: 64, offset: 64)
!149 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn(&core::fmt::::Opaque, &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error>", baseType: !150, size: 64, align: 64, dwarfAddressSpace: 0)
!150 = !DISubroutineType(types: !151)
!151 = !{!44, !146, !152}
!152 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::fmt::Formatter", baseType: !153, size: 64, align: 64, dwarfAddressSpace: 0)
!153 = !DICompositeType(tag: DW_TAG_structure_type, name: "Formatter", scope: !54, file: !2, size: 512, align: 64, elements: !154, templateParams: !4, identifier: "2b32fc1687cf03f460fc267e83d13f62")
!154 = !{!155, !157, !159, !160, !177, !178}
!155 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !153, file: !2, baseType: !156, size: 32, align: 32, offset: 384)
!156 = !DIBasicType(name: "u32", size: 32, encoding: DW_ATE_unsigned)
!157 = !DIDerivedType(tag: DW_TAG_member, name: "fill", scope: !153, file: !2, baseType: !158, size: 32, align: 32, offset: 416)
!158 = !DIBasicType(name: "char", size: 32, encoding: DW_ATE_unsigned_char)
!159 = !DIDerivedType(tag: DW_TAG_member, name: "align", scope: !153, file: !2, baseType: !51, size: 8, align: 8, offset: 448)
!160 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !153, file: !2, baseType: !161, size: 128, align: 64)
!161 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<usize>", scope: !162, file: !2, size: 128, align: 64, elements: !163, identifier: "c571b0abf319dfa9e93716c0e8f74925")
!162 = !DINamespace(name: "option", scope: !46)
!163 = !{!164}
!164 = !DICompositeType(tag: DW_TAG_variant_part, scope: !162, file: !2, size: 128, align: 64, elements: !165, templateParams: !168, identifier: "c571b0abf319dfa9e93716c0e8f74925_variant_part", discriminator: !175)
!165 = !{!166, !171}
!166 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !164, file: !2, baseType: !167, size: 128, align: 64, extraData: i64 0)
!167 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !161, file: !2, size: 128, align: 64, elements: !4, templateParams: !168, identifier: "c571b0abf319dfa9e93716c0e8f74925::None")
!168 = !{!169}
!169 = !DITemplateTypeParameter(name: "T", type: !170)
!170 = !DIBasicType(name: "usize", size: 64, encoding: DW_ATE_unsigned)
!171 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !164, file: !2, baseType: !172, size: 128, align: 64, extraData: i64 1)
!172 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !161, file: !2, size: 128, align: 64, elements: !173, templateParams: !168, identifier: "c571b0abf319dfa9e93716c0e8f74925::Some")
!173 = !{!174}
!174 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !172, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!175 = !DIDerivedType(tag: DW_TAG_member, scope: !162, file: !2, baseType: !176, size: 64, align: 64, flags: DIFlagArtificial)
!176 = !DIBasicType(name: "u64", size: 64, encoding: DW_ATE_unsigned)
!177 = !DIDerivedType(tag: DW_TAG_member, name: "precision", scope: !153, file: !2, baseType: !161, size: 128, align: 64, offset: 128)
!178 = !DIDerivedType(tag: DW_TAG_member, name: "buf", scope: !153, file: !2, baseType: !179, size: 128, align: 64, offset: 256)
!179 = !DICompositeType(tag: DW_TAG_structure_type, name: "&mut Write", scope: !54, file: !2, size: 128, align: 64, elements: !180, templateParams: !4, identifier: "50c81d7df1720d3afbc054cf5b7553f9")
!180 = !{!181, !183}
!181 = !DIDerivedType(tag: DW_TAG_member, name: "pointer", scope: !179, file: !2, baseType: !182, size: 64, align: 64, flags: DIFlagArtificial)
!182 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut u8", baseType: !47, size: 64, align: 64, dwarfAddressSpace: 0)
!183 = !DIDerivedType(tag: DW_TAG_member, name: "vtable", scope: !179, file: !2, baseType: !184, size: 64, align: 64, offset: 64, flags: DIFlagArtificial)
!184 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&[usize; 3]", baseType: !185, size: 64, align: 64, dwarfAddressSpace: 0)
!185 = !DICompositeType(tag: DW_TAG_array_type, baseType: !170, size: 192, align: 64, elements: !186)
!186 = !{!187}
!187 = !DISubrange(count: 3)
!188 = !DISubroutineType(types: !189)
!189 = !{!143, !190, !191}
!190 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&i32", baseType: !116, size: 64, align: 64, dwarfAddressSpace: 0)
!191 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn(&i32, &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error>", baseType: !192, size: 64, align: 64, dwarfAddressSpace: 0)
!192 = !DISubroutineType(types: !193)
!193 = !{!44, !190, !152}
!194 = !{!195, !196}
!195 = !DILocalVariable(name: "x", arg: 1, scope: !141, file: !142, line: 281, type: !190)
!196 = !DILocalVariable(name: "f", arg: 2, scope: !141, file: !142, line: 281, type: !191)
!197 = !{!198}
!198 = !DITemplateTypeParameter(name: "T", type: !116)
!199 = !DILocation(line: 281, column: 23, scope: !141)
!200 = !DILocation(line: 281, column: 33, scope: !141)
!201 = !DILocation(line: 290, column: 42, scope: !141)
!202 = !DILocation(line: 290, column: 68, scope: !141)
!203 = !DILocation(line: 290, column: 18, scope: !141)
!204 = !DILocation(line: 291, column: 6, scope: !141)
!205 = distinct !DISubprogram(name: "fmt", linkageName: "_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc0974365d01b28f2E", scope: !207, file: !206, line: 148, type: !192, scopeLine: 148, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !209)
!206 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/fmt/num.rs", directory: "", checksumkind: CSK_MD5, checksum: "61392c5da2cbc772261228616b04ba1d")
!207 = !DINamespace(name: "{{impl}}", scope: !208)
!208 = !DINamespace(name: "num", scope: !54)
!209 = !{!210, !211}
!210 = !DILocalVariable(name: "self", arg: 1, scope: !205, file: !206, line: 148, type: !190)
!211 = !DILocalVariable(name: "f", arg: 2, scope: !205, file: !206, line: 148, type: !152)
!212 = !DILocation(line: 148, column: 20, scope: !205)
!213 = !DILocation(line: 148, column: 27, scope: !205)
!214 = !DILocation(line: 149, column: 20, scope: !205)
!215 = !DILocation(line: 149, column: 17, scope: !205)
!216 = !DILocation(line: 151, column: 27, scope: !205)
!217 = !DILocation(line: 150, column: 21, scope: !205)
!218 = !DILocation(line: 151, column: 24, scope: !205)
!219 = !DILocation(line: 154, column: 21, scope: !205)
!220 = !DILocation(line: 152, column: 21, scope: !205)
!221 = !DILocation(line: 156, column: 14, scope: !205)
!222 = !{i8 0, i8 2}
!223 = distinct !DISubprogram(name: "new_v1", linkageName: "_ZN4core3fmt9Arguments6new_v117hdc8d87e06683c24dE", scope: !224, file: !142, line: 327, type: !286, scopeLine: 327, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !288)
!224 = !DICompositeType(tag: DW_TAG_structure_type, name: "Arguments", scope: !54, file: !2, size: 384, align: 64, elements: !225, templateParams: !4, identifier: "6e6ef8caea430a23fadd175c559bc8e4")
!225 = !{!226, !236, !280}
!226 = !DIDerivedType(tag: DW_TAG_member, name: "pieces", scope: !224, file: !2, baseType: !227, size: 128, align: 64)
!227 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[&str]", file: !2, size: 128, align: 64, elements: !228, templateParams: !4, identifier: "e5181a2ba73cefd2b9372dc5646453a9")
!228 = !{!229, !235}
!229 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !227, file: !2, baseType: !230, size: 64, align: 64)
!230 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const &str", baseType: !231, size: 64, align: 64, dwarfAddressSpace: 0)
!231 = !DICompositeType(tag: DW_TAG_structure_type, name: "&str", file: !2, size: 128, align: 64, elements: !232, templateParams: !4, identifier: "7ef2a91eecc7bcf4b4aaea2dbce79437")
!232 = !{!233, !234}
!233 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !231, file: !2, baseType: !76, size: 64, align: 64)
!234 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !231, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!235 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !227, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!236 = !DIDerivedType(tag: DW_TAG_member, name: "fmt", scope: !224, file: !2, baseType: !237, size: 128, align: 64, offset: 128)
!237 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<&[core::fmt::rt::v1::Argument]>", scope: !162, file: !2, size: 128, align: 64, elements: !238, identifier: "4c4e7ce97b241d8f1f0976510706f590")
!238 = !{!239}
!239 = !DICompositeType(tag: DW_TAG_variant_part, scope: !162, file: !2, size: 128, align: 64, elements: !240, templateParams: !243, identifier: "4c4e7ce97b241d8f1f0976510706f590_variant_part", discriminator: !175)
!240 = !{!241, !276}
!241 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !239, file: !2, baseType: !242, size: 128, align: 64, extraData: i64 0)
!242 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !237, file: !2, size: 128, align: 64, elements: !4, templateParams: !243, identifier: "4c4e7ce97b241d8f1f0976510706f590::None")
!243 = !{!244}
!244 = !DITemplateTypeParameter(name: "T", type: !245)
!245 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[core::fmt::rt::v1::Argument]", file: !2, size: 128, align: 64, elements: !246, templateParams: !4, identifier: "71eeae0474d7f7b239ed91fc47f9d3a4")
!246 = !{!247, !275}
!247 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !245, file: !2, baseType: !248, size: 64, align: 64)
!248 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const core::fmt::rt::v1::Argument", baseType: !249, size: 64, align: 64, dwarfAddressSpace: 0)
!249 = !DICompositeType(tag: DW_TAG_structure_type, name: "Argument", scope: !52, file: !2, size: 448, align: 64, elements: !250, templateParams: !4, identifier: "97a2ecc05ee0e0a27388291cc1981c48")
!250 = !{!251, !252}
!251 = !DIDerivedType(tag: DW_TAG_member, name: "position", scope: !249, file: !2, baseType: !170, size: 64, align: 64)
!252 = !DIDerivedType(tag: DW_TAG_member, name: "format", scope: !249, file: !2, baseType: !253, size: 384, align: 64, offset: 64)
!253 = !DICompositeType(tag: DW_TAG_structure_type, name: "FormatSpec", scope: !52, file: !2, size: 384, align: 64, elements: !254, templateParams: !4, identifier: "87e86faef3e70c7728308d50179069cf")
!254 = !{!255, !256, !257, !258, !274}
!255 = !DIDerivedType(tag: DW_TAG_member, name: "fill", scope: !253, file: !2, baseType: !158, size: 32, align: 32, offset: 256)
!256 = !DIDerivedType(tag: DW_TAG_member, name: "align", scope: !253, file: !2, baseType: !51, size: 8, align: 8, offset: 320)
!257 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !253, file: !2, baseType: !156, size: 32, align: 32, offset: 288)
!258 = !DIDerivedType(tag: DW_TAG_member, name: "precision", scope: !253, file: !2, baseType: !259, size: 128, align: 64)
!259 = !DICompositeType(tag: DW_TAG_structure_type, name: "Count", scope: !52, file: !2, size: 128, align: 64, elements: !260, identifier: "a3446b1b916b3c2fb67fa58ef30e2c7f")
!260 = !{!261}
!261 = !DICompositeType(tag: DW_TAG_variant_part, scope: !52, file: !2, size: 128, align: 64, elements: !262, templateParams: !4, identifier: "a3446b1b916b3c2fb67fa58ef30e2c7f_variant_part", discriminator: !273)
!262 = !{!263, !267, !271}
!263 = !DIDerivedType(tag: DW_TAG_member, name: "Is", scope: !261, file: !2, baseType: !264, size: 128, align: 64, extraData: i64 0)
!264 = !DICompositeType(tag: DW_TAG_structure_type, name: "Is", scope: !259, file: !2, size: 128, align: 64, elements: !265, templateParams: !4, identifier: "a3446b1b916b3c2fb67fa58ef30e2c7f::Is")
!265 = !{!266}
!266 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !264, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!267 = !DIDerivedType(tag: DW_TAG_member, name: "Param", scope: !261, file: !2, baseType: !268, size: 128, align: 64, extraData: i64 1)
!268 = !DICompositeType(tag: DW_TAG_structure_type, name: "Param", scope: !259, file: !2, size: 128, align: 64, elements: !269, templateParams: !4, identifier: "a3446b1b916b3c2fb67fa58ef30e2c7f::Param")
!269 = !{!270}
!270 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !268, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!271 = !DIDerivedType(tag: DW_TAG_member, name: "Implied", scope: !261, file: !2, baseType: !272, size: 128, align: 64, extraData: i64 2)
!272 = !DICompositeType(tag: DW_TAG_structure_type, name: "Implied", scope: !259, file: !2, size: 128, align: 64, elements: !4, templateParams: !4, identifier: "a3446b1b916b3c2fb67fa58ef30e2c7f::Implied")
!273 = !DIDerivedType(tag: DW_TAG_member, scope: !52, file: !2, baseType: !176, size: 64, align: 64, flags: DIFlagArtificial)
!274 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !253, file: !2, baseType: !259, size: 128, align: 64, offset: 128)
!275 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !245, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!276 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !239, file: !2, baseType: !277, size: 128, align: 64)
!277 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !237, file: !2, size: 128, align: 64, elements: !278, templateParams: !243, identifier: "4c4e7ce97b241d8f1f0976510706f590::Some")
!278 = !{!279}
!279 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !277, file: !2, baseType: !245, size: 128, align: 64)
!280 = !DIDerivedType(tag: DW_TAG_member, name: "args", scope: !224, file: !2, baseType: !281, size: 128, align: 64, offset: 256)
!281 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[core::fmt::ArgumentV1]", file: !2, size: 128, align: 64, elements: !282, templateParams: !4, identifier: "7a35ee309ed86080b6b92be07245264f")
!282 = !{!283, !285}
!283 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !281, file: !2, baseType: !284, size: 64, align: 64)
!284 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const core::fmt::ArgumentV1", baseType: !143, size: 64, align: 64, dwarfAddressSpace: 0)
!285 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !281, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!286 = !DISubroutineType(types: !287)
!287 = !{!224, !227, !281}
!288 = !{!289, !290}
!289 = !DILocalVariable(name: "pieces", arg: 1, scope: !223, file: !142, line: 327, type: !227)
!290 = !DILocalVariable(name: "args", arg: 2, scope: !223, file: !142, line: 327, type: !281)
!291 = !DILocation(line: 327, column: 42, scope: !223)
!292 = !DILocation(line: 327, column: 19, scope: !223)
!293 = !DILocation(line: 328, column: 34, scope: !223)
!294 = !DILocation(line: 328, column: 9, scope: !223)
!295 = !DILocation(line: 328, column: 45, scope: !223)
!296 = !DILocation(line: 329, column: 6, scope: !223)
!297 = distinct !DISubprogram(name: "new_unchecked", linkageName: "_ZN4core3num12NonZeroUsize13new_unchecked17h04dd39e9beda0f3fE", scope: !299, file: !298, line: 76, type: !303, scopeLine: 76, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !305)
!298 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/num/mod.rs", directory: "", checksumkind: CSK_MD5, checksum: "ac6d91326c826e6434d9662e3774b224")
!299 = !DICompositeType(tag: DW_TAG_structure_type, name: "NonZeroUsize", scope: !300, file: !2, size: 64, align: 64, elements: !301, templateParams: !4, identifier: "7467080a84be577b400159eae10bed5")
!300 = !DINamespace(name: "num", scope: !46)
!301 = !{!302}
!302 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !299, file: !2, baseType: !170, size: 64, align: 64)
!303 = !DISubroutineType(types: !304)
!304 = !{!299, !170}
!305 = !{!306}
!306 = !DILocalVariable(name: "n", arg: 1, scope: !297, file: !298, line: 76, type: !170)
!307 = !DILocation(line: 76, column: 51, scope: !297)
!308 = !DILocation(line: 77, column: 21, scope: !297)
!309 = !DILocation(line: 78, column: 18, scope: !297)
!310 = !{i64 1, i64 0}
!311 = distinct !DISubprogram(name: "get", linkageName: "_ZN4core3num12NonZeroUsize3get17h00ad168d50fd0154E", scope: !299, file: !298, line: 97, type: !312, scopeLine: 97, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !314)
!312 = !DISubroutineType(types: !313)
!313 = !{!170, !299}
!314 = !{!315}
!315 = !DILocalVariable(name: "self", arg: 1, scope: !311, file: !298, line: 97, type: !299)
!316 = !DILocation(line: 97, column: 34, scope: !311)
!317 = !DILocation(line: 99, column: 18, scope: !311)
!318 = distinct !DISubprogram(name: "call_once<closure-0,()>", linkageName: "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h5cba647217a5244fE", scope: !320, file: !319, line: 232, type: !323, scopeLine: 232, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !329, retainedNodes: !326)
!319 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ops/function.rs", directory: "", checksumkind: CSK_MD5, checksum: "4e38de05081e36b7316ccfac06754856")
!320 = !DINamespace(name: "FnOnce", scope: !321)
!321 = !DINamespace(name: "function", scope: !322)
!322 = !DINamespace(name: "ops", scope: !46)
!323 = !DISubroutineType(types: !324)
!324 = !{!116, !325}
!325 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut closure-0", baseType: !5, size: 64, align: 64, dwarfAddressSpace: 0)
!326 = !{!327, !328}
!327 = !DILocalVariable(arg: 1, scope: !318, file: !319, line: 232, type: !325)
!328 = !DILocalVariable(arg: 2, scope: !318, file: !319, line: 232, type: !104)
!329 = !{!330, !331}
!330 = !DITemplateTypeParameter(name: "Self", type: !5)
!331 = !DITemplateTypeParameter(name: "Args", type: !104)
!332 = !DILocation(line: 232, column: 5, scope: !318)
!333 = distinct !DISubprogram(name: "call_once<closure-0,()>", linkageName: "_ZN4core3ops8function6FnOnce9call_once17h6e01c9070fbbf5b9E", scope: !320, file: !319, line: 232, type: !334, scopeLine: 232, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !329, retainedNodes: !336)
!334 = !DISubroutineType(types: !335)
!335 = !{!116, !5}
!336 = !{!337, !338}
!337 = !DILocalVariable(arg: 1, scope: !333, file: !319, line: 232, type: !5)
!338 = !DILocalVariable(arg: 2, scope: !333, file: !319, line: 232, type: !104)
!339 = !DILocation(line: 232, column: 5, scope: !333)
!340 = distinct !DISubprogram(name: "drop_in_place<alloc::boxed::Box<i32>>", linkageName: "_ZN4core3ptr13drop_in_place17h9b9ae39c3b302813E", scope: !70, file: !341, line: 184, type: !342, scopeLine: 184, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !348, retainedNodes: !346)
!341 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ptr/mod.rs", directory: "", checksumkind: CSK_MD5, checksum: "3a5ba522fe2039fe5996ec730d3af763")
!342 = !DISubroutineType(types: !343)
!343 = !{null, !344}
!344 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut alloc::boxed::Box<i32>", baseType: !345, size: 64, align: 64, dwarfAddressSpace: 0)
!345 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Box<i32>", baseType: !116, size: 64, align: 64, dwarfAddressSpace: 0)
!346 = !{!347}
!347 = !DILocalVariable(arg: 1, scope: !340, file: !341, line: 184, type: !344)
!348 = !{!349}
!349 = !DITemplateTypeParameter(name: "T", type: !345)
!350 = !DILocation(line: 184, column: 1, scope: !340)
!351 = distinct !DISubprogram(name: "drop_in_place<closure-0>", linkageName: "_ZN4core3ptr13drop_in_place17hea18d0ccc29f056eE", scope: !70, file: !341, line: 184, type: !352, scopeLine: 184, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !356, retainedNodes: !354)
!352 = !DISubroutineType(types: !353)
!353 = !{null, !325}
!354 = !{!355}
!355 = !DILocalVariable(arg: 1, scope: !351, file: !341, line: 184, type: !325)
!356 = !{!357}
!357 = !DITemplateTypeParameter(name: "T", type: !5)
!358 = !DILocation(line: 184, column: 1, scope: !351)
!359 = distinct !DISubprogram(name: "new_unchecked<u8>", linkageName: "_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17ha060a82c6513b8a8E", scope: !79, file: !360, line: 89, type: !361, scopeLine: 89, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !77, retainedNodes: !363)
!360 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ptr/unique.rs", directory: "", checksumkind: CSK_MD5, checksum: "7cd5ac48852c8b7ee8a622ab0d0cbdd9")
!361 = !DISubroutineType(types: !362)
!362 = !{!79, !182}
!363 = !{!364}
!364 = !DILocalVariable(name: "ptr", arg: 1, scope: !359, file: !360, line: 89, type: !182)
!365 = !DILocation(line: 89, column: 39, scope: !359)
!366 = !DILocation(line: 90, column: 9, scope: !359)
!367 = !DILocation(line: 91, column: 6, scope: !359)
!368 = distinct !DISubprogram(name: "cast<i32,u8>", linkageName: "_ZN4core3ptr6unique15Unique$LT$T$GT$4cast17h51c9bb5a005485cbE", scope: !369, file: !360, line: 132, type: !375, scopeLine: 132, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !379, retainedNodes: !377)
!369 = !DICompositeType(tag: DW_TAG_structure_type, name: "Unique<i32>", scope: !80, file: !2, size: 64, align: 64, elements: !370, templateParams: !197, identifier: "b9d04062719b38f18fcdedc8682a75e1")
!370 = !{!371, !373}
!371 = !DIDerivedType(tag: DW_TAG_member, name: "pointer", scope: !369, file: !2, baseType: !372, size: 64, align: 64)
!372 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const i32", baseType: !116, size: 64, align: 64, dwarfAddressSpace: 0)
!373 = !DIDerivedType(tag: DW_TAG_member, name: "_marker", scope: !369, file: !2, baseType: !374, align: 8)
!374 = !DICompositeType(tag: DW_TAG_structure_type, name: "PhantomData<i32>", scope: !85, file: !2, align: 8, elements: !4, templateParams: !197, identifier: "f4d4e455293720c585c84451155a455b")
!375 = !DISubroutineType(types: !376)
!376 = !{!79, !369}
!377 = !{!378}
!378 = !DILocalVariable(name: "self", arg: 1, scope: !368, file: !360, line: 132, type: !369)
!379 = !{!198, !380}
!380 = !DITemplateTypeParameter(name: "U", type: !47)
!381 = !DILocation(line: 132, column: 26, scope: !368)
!382 = !DILocation(line: 136, column: 40, scope: !368)
!383 = !DILocation(line: 136, column: 18, scope: !368)
!384 = !DILocation(line: 137, column: 6, scope: !368)
!385 = distinct !DISubprogram(name: "as_ptr<i32>", linkageName: "_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h59c62f8196b2889eE", scope: !369, file: !360, line: 106, type: !386, scopeLine: 106, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !197, retainedNodes: !389)
!386 = !DISubroutineType(types: !387)
!387 = !{!388, !369}
!388 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut i32", baseType: !116, size: 64, align: 64, dwarfAddressSpace: 0)
!389 = !{!390}
!390 = !DILocalVariable(name: "self", arg: 1, scope: !385, file: !360, line: 106, type: !369)
!391 = !DILocation(line: 106, column: 25, scope: !385)
!392 = !DILocation(line: 108, column: 6, scope: !385)
!393 = distinct !DISubprogram(name: "as_ptr<u8>", linkageName: "_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17hdcfa3758c305564cE", scope: !79, file: !360, line: 106, type: !394, scopeLine: 106, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !77, retainedNodes: !396)
!394 = !DISubroutineType(types: !395)
!395 = !{!182, !79}
!396 = !{!397}
!397 = !DILocalVariable(name: "self", arg: 1, scope: !393, file: !360, line: 106, type: !79)
!398 = !DILocation(line: 106, column: 25, scope: !393)
!399 = !DILocation(line: 108, column: 6, scope: !393)
!400 = distinct !DISubprogram(name: "as_ref<i32>", linkageName: "_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ref17h09e8b3c37bbfeea7E", scope: !369, file: !360, line: 116, type: !401, scopeLine: 116, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !197, retainedNodes: !404)
!401 = !DISubroutineType(types: !402)
!402 = !{!190, !403}
!403 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&core::ptr::unique::Unique<i32>", baseType: !369, size: 64, align: 64, dwarfAddressSpace: 0)
!404 = !{!405}
!405 = !DILocalVariable(name: "self", arg: 1, scope: !400, file: !360, line: 116, type: !403)
!406 = !DILocation(line: 116, column: 26, scope: !400)
!407 = !DILocation(line: 117, column: 11, scope: !400)
!408 = !DILocation(line: 118, column: 6, scope: !400)
!409 = distinct !DISubprogram(name: "is_null<u8>", linkageName: "_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h4481d89737ba7ccbE", scope: !411, file: !410, line: 25, type: !413, scopeLine: 25, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !77, retainedNodes: !416)
!410 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ptr/mut_ptr.rs", directory: "", checksumkind: CSK_MD5, checksum: "9dd298e74c1d729a82215b77163bbc4d")
!411 = !DINamespace(name: "{{impl}}", scope: !412)
!412 = !DINamespace(name: "mut_ptr", scope: !70)
!413 = !DISubroutineType(types: !414)
!414 = !{!415, !182}
!415 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
!416 = !{!417}
!417 = !DILocalVariable(name: "self", arg: 1, scope: !409, file: !410, line: 25, type: !182)
!418 = !DILocation(line: 25, column: 20, scope: !409)
!419 = !DILocation(line: 28, column: 30, scope: !409)
!420 = !DILocation(line: 28, column: 9, scope: !409)
!421 = !DILocation(line: 29, column: 6, scope: !409)
!422 = distinct !DISubprogram(name: "new_unchecked<u8>", linkageName: "_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h403d6d098f19e6f5E", scope: !73, file: !67, line: 89, type: !423, scopeLine: 89, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !77, retainedNodes: !425)
!423 = !DISubroutineType(types: !424)
!424 = !{!73, !182}
!425 = !{!426}
!426 = !DILocalVariable(name: "ptr", arg: 1, scope: !422, file: !67, line: 89, type: !182)
!427 = !DILocation(line: 89, column: 39, scope: !422)
!428 = !DILocation(line: 90, column: 9, scope: !422)
!429 = !DILocation(line: 91, column: 6, scope: !422)
!430 = distinct !DISubprogram(name: "new<u8>", linkageName: "_ZN4core3ptr8non_null16NonNull$LT$T$GT$3new17h8d677d68afef3a01E", scope: !73, file: !67, line: 96, type: !431, scopeLine: 96, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !77, retainedNodes: !445)
!431 = !DISubroutineType(types: !432)
!432 = !{!433, !182}
!433 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<core::ptr::non_null::NonNull<u8>>", scope: !162, file: !2, size: 64, align: 64, elements: !434, identifier: "36a1b3eba23b68a53377a89d88d7f3e9")
!434 = !{!435}
!435 = !DICompositeType(tag: DW_TAG_variant_part, scope: !162, file: !2, size: 64, align: 64, elements: !436, templateParams: !439, identifier: "36a1b3eba23b68a53377a89d88d7f3e9_variant_part", discriminator: !175)
!436 = !{!437, !441}
!437 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !435, file: !2, baseType: !438, size: 64, align: 64, extraData: i64 0)
!438 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !433, file: !2, size: 64, align: 64, elements: !4, templateParams: !439, identifier: "36a1b3eba23b68a53377a89d88d7f3e9::None")
!439 = !{!440}
!440 = !DITemplateTypeParameter(name: "T", type: !73)
!441 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !435, file: !2, baseType: !442, size: 64, align: 64)
!442 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !433, file: !2, size: 64, align: 64, elements: !443, templateParams: !439, identifier: "36a1b3eba23b68a53377a89d88d7f3e9::Some")
!443 = !{!444}
!444 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !442, file: !2, baseType: !73, size: 64, align: 64)
!445 = !{!446}
!446 = !DILocalVariable(name: "ptr", arg: 1, scope: !430, file: !67, line: 96, type: !182)
!447 = !DILocation(line: 96, column: 16, scope: !430)
!448 = !DILocation(line: 97, column: 13, scope: !430)
!449 = !DILocation(line: 97, column: 12, scope: !430)
!450 = !DILocation(line: 97, column: 9, scope: !430)
!451 = !DILocation(line: 101, column: 13, scope: !430)
!452 = !DILocation(line: 99, column: 27, scope: !430)
!453 = !DILocation(line: 99, column: 13, scope: !430)
!454 = !DILocation(line: 103, column: 6, scope: !430)
!455 = distinct !DISubprogram(name: "as_ptr<u8>", linkageName: "_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h3236d5ce7b72e6c9E", scope: !73, file: !67, line: 109, type: !456, scopeLine: 109, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !77, retainedNodes: !458)
!456 = !DISubroutineType(types: !457)
!457 = !{!182, !73}
!458 = !{!459}
!459 = !DILocalVariable(name: "self", arg: 1, scope: !455, file: !67, line: 109, type: !73)
!460 = !DILocation(line: 109, column: 25, scope: !455)
!461 = !DILocation(line: 111, column: 6, scope: !455)
!462 = distinct !DISubprogram(name: "from_size_align_unchecked", linkageName: "_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h236616d9db23cd7bE", scope: !464, file: !463, line: 92, type: !469, scopeLine: 92, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !471)
!463 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/alloc/layout.rs", directory: "", checksumkind: CSK_MD5, checksum: "127db5bd387bc87d1e5ee90ab2227b11")
!464 = !DICompositeType(tag: DW_TAG_structure_type, name: "Layout", scope: !465, file: !2, size: 128, align: 64, elements: !466, templateParams: !4, identifier: "6f9a0d304a3cc6f8403fcf39af0bbc7a")
!465 = !DINamespace(name: "layout", scope: !61)
!466 = !{!467, !468}
!467 = !DIDerivedType(tag: DW_TAG_member, name: "size_", scope: !464, file: !2, baseType: !170, size: 64, align: 64)
!468 = !DIDerivedType(tag: DW_TAG_member, name: "align_", scope: !464, file: !2, baseType: !299, size: 64, align: 64, offset: 64)
!469 = !DISubroutineType(types: !470)
!470 = !{!464, !170, !170}
!471 = !{!472, !473}
!472 = !DILocalVariable(name: "size", arg: 1, scope: !462, file: !463, line: 92, type: !170)
!473 = !DILocalVariable(name: "align", arg: 2, scope: !462, file: !463, line: 92, type: !170)
!474 = !DILocation(line: 92, column: 51, scope: !462)
!475 = !DILocation(line: 92, column: 64, scope: !462)
!476 = !DILocation(line: 93, column: 39, scope: !462)
!477 = !DILocation(line: 93, column: 9, scope: !462)
!478 = !DILocation(line: 94, column: 6, scope: !462)
!479 = distinct !DISubprogram(name: "size", linkageName: "_ZN4core5alloc6layout6Layout4size17h853e5eb674a4bb50E", scope: !464, file: !463, line: 100, type: !480, scopeLine: 100, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !483)
!480 = !DISubroutineType(types: !481)
!481 = !{!170, !482}
!482 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&core::alloc::layout::Layout", baseType: !464, size: 64, align: 64, dwarfAddressSpace: 0)
!483 = !{!484}
!484 = !DILocalVariable(name: "self", arg: 1, scope: !479, file: !463, line: 100, type: !482)
!485 = !DILocation(line: 100, column: 23, scope: !479)
!486 = !DILocation(line: 101, column: 9, scope: !479)
!487 = !DILocation(line: 102, column: 6, scope: !479)
!488 = distinct !DISubprogram(name: "align", linkageName: "_ZN4core5alloc6layout6Layout5align17h87d317b4c9ca64faE", scope: !464, file: !463, line: 108, type: !480, scopeLine: 108, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !489)
!489 = !{!490}
!490 = !DILocalVariable(name: "self", arg: 1, scope: !488, file: !463, line: 108, type: !482)
!491 = !DILocation(line: 108, column: 24, scope: !488)
!492 = !DILocation(line: 109, column: 9, scope: !488)
!493 = !DILocation(line: 110, column: 6, scope: !488)
!494 = distinct !DISubprogram(name: "dangling", linkageName: "_ZN4core5alloc6layout6Layout8dangling17ha2a7c7b40a8768d2E", scope: !464, file: !463, line: 145, type: !495, scopeLine: 145, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !497)
!495 = !DISubroutineType(types: !496)
!496 = !{!73, !482}
!497 = !{!498}
!498 = !DILocalVariable(name: "self", arg: 1, scope: !494, file: !463, line: 145, type: !482)
!499 = !DILocation(line: 145, column: 27, scope: !494)
!500 = !DILocation(line: 147, column: 41, scope: !494)
!501 = !DILocation(line: 147, column: 18, scope: !494)
!502 = !DILocation(line: 148, column: 6, scope: !494)
!503 = distinct !DISubprogram(name: "ok_or<core::ptr::non_null::NonNull<u8>,core::alloc::AllocErr>", linkageName: "_ZN4core6option15Option$LT$T$GT$5ok_or17h1ccd596f1af40427E", scope: !433, file: !504, line: 538, type: !505, scopeLine: 538, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !515, retainedNodes: !523)
!504 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/option.rs", directory: "", checksumkind: CSK_MD5, checksum: "15ea21ba49318b8451d59615a364b377")
!505 = !DISubroutineType(types: !506)
!506 = !{!507, !433, !517}
!507 = !DICompositeType(tag: DW_TAG_structure_type, name: "Result<core::ptr::non_null::NonNull<u8>, core::alloc::AllocErr>", scope: !45, file: !2, size: 64, align: 64, elements: !508, identifier: "2b308ba6e3274bb5664a289a1c0b071a")
!508 = !{!509}
!509 = !DICompositeType(tag: DW_TAG_variant_part, scope: !45, file: !2, size: 64, align: 64, elements: !510, templateParams: !515, identifier: "2b308ba6e3274bb5664a289a1c0b071a_variant_part", discriminator: !522)
!510 = !{!511, !518}
!511 = !DIDerivedType(tag: DW_TAG_member, name: "Ok", scope: !509, file: !2, baseType: !512, size: 64, align: 64)
!512 = !DICompositeType(tag: DW_TAG_structure_type, name: "Ok", scope: !507, file: !2, size: 64, align: 64, elements: !513, templateParams: !515, identifier: "2b308ba6e3274bb5664a289a1c0b071a::Ok")
!513 = !{!514}
!514 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !512, file: !2, baseType: !73, size: 64, align: 64)
!515 = !{!440, !516}
!516 = !DITemplateTypeParameter(name: "E", type: !517)
!517 = !DICompositeType(tag: DW_TAG_structure_type, name: "AllocErr", scope: !61, file: !2, align: 8, elements: !4, templateParams: !4, identifier: "16b797be71bc65495e34f0d54c795c69")
!518 = !DIDerivedType(tag: DW_TAG_member, name: "Err", scope: !509, file: !2, baseType: !519, size: 64, align: 64, extraData: i64 0)
!519 = !DICompositeType(tag: DW_TAG_structure_type, name: "Err", scope: !507, file: !2, size: 64, align: 64, elements: !520, templateParams: !515, identifier: "2b308ba6e3274bb5664a289a1c0b071a::Err")
!520 = !{!521}
!521 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !519, file: !2, baseType: !517, align: 8)
!522 = !DIDerivedType(tag: DW_TAG_member, scope: !45, file: !2, baseType: !176, size: 64, align: 64, flags: DIFlagArtificial)
!523 = !{!524, !525, !526}
!524 = !DILocalVariable(name: "self", arg: 1, scope: !503, file: !504, line: 538, type: !433)
!525 = !DILocalVariable(name: "err", arg: 2, scope: !503, file: !504, line: 538, type: !517)
!526 = !DILocalVariable(name: "v", scope: !527, file: !504, line: 540, type: !73, align: 8)
!527 = distinct !DILexicalBlock(scope: !503, file: !504, line: 540, column: 13)
!528 = !DILocation(line: 538, column: 21, scope: !503)
!529 = !DILocation(line: 538, column: 27, scope: !503)
!530 = !DILocation(line: 540, column: 13, scope: !503)
!531 = !DILocation(line: 541, column: 25, scope: !503)
!532 = !DILocation(line: 541, column: 21, scope: !503)
!533 = !DILocation(line: 539, column: 9, scope: !503)
!534 = !DILocation(line: 539, column: 15, scope: !503)
!535 = !DILocation(line: 540, column: 18, scope: !503)
!536 = !DILocation(line: 540, column: 18, scope: !527)
!537 = !DILocation(line: 540, column: 24, scope: !527)
!538 = !DILocation(line: 538, column: 5, scope: !503)
!539 = !DILocation(line: 543, column: 5, scope: !503)
!540 = !DILocation(line: 543, column: 6, scope: !503)
!541 = distinct !DISubprogram(name: "from<core::alloc::AllocErr>", linkageName: "_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h3e8a6cda4bb505a6E", scope: !543, file: !542, line: 566, type: !545, scopeLine: 566, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !549, retainedNodes: !547)
!542 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/convert/mod.rs", directory: "", checksumkind: CSK_MD5, checksum: "b5afb63a2ff7acb9f3122acdc4734d51")
!543 = !DINamespace(name: "{{impl}}", scope: !544)
!544 = !DINamespace(name: "convert", scope: !46)
!545 = !DISubroutineType(types: !546)
!546 = !{null, !517}
!547 = !{!548}
!548 = !DILocalVariable(name: "t", arg: 1, scope: !541, file: !542, line: 566, type: !517)
!549 = !{!550}
!550 = !DITemplateTypeParameter(name: "T", type: !517)
!551 = !DILocation(line: 566, column: 13, scope: !541)
!552 = !DILocation(line: 568, column: 6, scope: !541)
!553 = distinct !DISubprogram(name: "into<core::ptr::unique::Unique<u8>,core::ptr::non_null::NonNull<u8>>", linkageName: "_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hee432a47756e9dbeE", scope: !543, file: !542, line: 558, type: !71, scopeLine: 558, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !556, retainedNodes: !554)
!554 = !{!555}
!555 = !DILocalVariable(name: "self", arg: 1, scope: !553, file: !542, line: 558, type: !79)
!556 = !{!557, !558}
!557 = !DITemplateTypeParameter(name: "T", type: !79)
!558 = !DITemplateTypeParameter(name: "U", type: !73)
!559 = !DILocation(line: 558, column: 13, scope: !553)
!560 = !DILocation(line: 559, column: 9, scope: !553)
!561 = !DILocation(line: 560, column: 6, scope: !553)
!562 = distinct !DISubprogram(name: "report", linkageName: "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hee7847427e568887E", scope: !564, file: !563, line: 1667, type: !566, scopeLine: 1667, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !568)
!563 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/process.rs", directory: "", checksumkind: CSK_MD5, checksum: "bfa554ca649d4c8c8d446b86ff55b4bf")
!564 = !DINamespace(name: "{{impl}}", scope: !565)
!565 = !DINamespace(name: "process", scope: !8)
!566 = !DISubroutineType(types: !567)
!567 = !{!116, !104}
!568 = !{!569}
!569 = !DILocalVariable(name: "self", arg: 1, scope: !562, file: !563, line: 1667, type: !104)
!570 = !DILocation(line: 1667, column: 15, scope: !562)
!571 = !DILocation(line: 1668, column: 9, scope: !562)
!572 = !DILocation(line: 1669, column: 6, scope: !562)
!573 = distinct !DISubprogram(name: "alloc_zeroed", linkageName: "_ZN5alloc5alloc12alloc_zeroed17hdb06d12151589786E", scope: !575, file: !574, line: 160, type: !577, scopeLine: 160, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !579)
!574 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/liballoc/alloc.rs", directory: "", checksumkind: CSK_MD5, checksum: "32708d352332aed644b4d82a77bf0487")
!575 = !DINamespace(name: "alloc", scope: !576)
!576 = !DINamespace(name: "alloc", scope: null)
!577 = !DISubroutineType(types: !578)
!578 = !{!182, !464}
!579 = !{!580}
!580 = !DILocalVariable(name: "layout", arg: 1, scope: !573, file: !574, line: 160, type: !464)
!581 = !DILocation(line: 160, column: 28, scope: !573)
!582 = !DILocation(line: 161, column: 25, scope: !573)
!583 = !DILocation(line: 161, column: 40, scope: !573)
!584 = !DILocation(line: 161, column: 5, scope: !573)
!585 = !DILocation(line: 162, column: 2, scope: !573)
!586 = distinct !DISubprogram(name: "exchange_malloc", linkageName: "_ZN5alloc5alloc15exchange_malloc17he756f9617b20b78aE", scope: !575, file: !574, line: 266, type: !587, scopeLine: 266, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !589)
!587 = !DISubroutineType(types: !588)
!588 = !{!182, !170, !170}
!589 = !{!590, !591, !592, !594}
!590 = !DILocalVariable(name: "size", arg: 1, scope: !586, file: !574, line: 266, type: !170)
!591 = !DILocalVariable(name: "align", arg: 2, scope: !586, file: !574, line: 266, type: !170)
!592 = !DILocalVariable(name: "layout", scope: !593, file: !574, line: 267, type: !464, align: 8)
!593 = distinct !DILexicalBlock(scope: !586, file: !574, line: 267, column: 5)
!594 = !DILocalVariable(name: "memory", scope: !595, file: !574, line: 269, type: !596, align: 8)
!595 = distinct !DILexicalBlock(scope: !593, file: !574, line: 269, column: 9)
!596 = !DICompositeType(tag: DW_TAG_structure_type, name: "MemoryBlock", scope: !61, file: !2, size: 128, align: 64, elements: !597, templateParams: !4, identifier: "57f3852e263c228274d40e222c5085d3")
!597 = !{!598, !599}
!598 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !596, file: !2, baseType: !73, size: 64, align: 64)
!599 = !DIDerivedType(tag: DW_TAG_member, name: "size", scope: !596, file: !2, baseType: !170, size: 64, align: 64, offset: 64)
!600 = !DILocation(line: 269, column: 12, scope: !595)
!601 = !DILocation(line: 267, column: 9, scope: !593)
!602 = !DILocation(line: 266, column: 27, scope: !586)
!603 = !DILocation(line: 266, column: 40, scope: !586)
!604 = !DILocation(line: 267, column: 18, scope: !586)
!605 = !DILocation(line: 268, column: 11, scope: !593)
!606 = !DILocation(line: 269, column: 9, scope: !593)
!607 = !DILocation(line: 270, column: 19, scope: !593)
!608 = !DILocation(line: 269, column: 12, scope: !593)
!609 = !DILocation(line: 269, column: 23, scope: !595)
!610 = !DILocation(line: 272, column: 1, scope: !586)
!611 = !DILocation(line: 272, column: 2, scope: !586)
!612 = distinct !DISubprogram(name: "alloc", linkageName: "_ZN5alloc5alloc5alloc17h7526c48bac8f90ebE", scope: !575, file: !574, line: 79, type: !577, scopeLine: 79, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !613)
!613 = !{!614}
!614 = !DILocalVariable(name: "layout", arg: 1, scope: !612, file: !574, line: 79, type: !464)
!615 = !DILocation(line: 79, column: 21, scope: !612)
!616 = !DILocation(line: 80, column: 18, scope: !612)
!617 = !DILocation(line: 80, column: 33, scope: !612)
!618 = !DILocation(line: 80, column: 5, scope: !612)
!619 = !DILocation(line: 81, column: 2, scope: !612)
!620 = distinct !DISubprogram(name: "dealloc", linkageName: "_ZN5alloc5alloc7dealloc17h0e6f83fc63dc537eE", scope: !575, file: !574, line: 101, type: !621, scopeLine: 101, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !623)
!621 = !DISubroutineType(types: !622)
!622 = !{null, !182, !464}
!623 = !{!624, !625}
!624 = !DILocalVariable(name: "ptr", arg: 1, scope: !620, file: !574, line: 101, type: !182)
!625 = !DILocalVariable(name: "layout", arg: 2, scope: !620, file: !574, line: 101, type: !464)
!626 = !DILocation(line: 101, column: 37, scope: !620)
!627 = !DILocation(line: 101, column: 23, scope: !620)
!628 = !DILocation(line: 102, column: 25, scope: !620)
!629 = !DILocation(line: 102, column: 40, scope: !620)
!630 = !DILocation(line: 102, column: 5, scope: !620)
!631 = !DILocation(line: 103, column: 2, scope: !620)
!632 = distinct !DISubprogram(name: "box_free<i32>", linkageName: "_ZN5alloc5alloc8box_free17h14973d0e62e12400E", scope: !575, file: !574, line: 281, type: !633, scopeLine: 281, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !197, retainedNodes: !635)
!633 = !DISubroutineType(types: !634)
!634 = !{null, !369}
!635 = !{!636, !637, !639, !641}
!636 = !DILocalVariable(name: "ptr", arg: 1, scope: !632, file: !574, line: 281, type: !369)
!637 = !DILocalVariable(name: "size", scope: !638, file: !574, line: 282, type: !170, align: 8)
!638 = distinct !DILexicalBlock(scope: !632, file: !574, line: 282, column: 5)
!639 = !DILocalVariable(name: "align", scope: !640, file: !574, line: 283, type: !170, align: 8)
!640 = distinct !DILexicalBlock(scope: !638, file: !574, line: 283, column: 5)
!641 = !DILocalVariable(name: "layout", scope: !642, file: !574, line: 284, type: !464, align: 8)
!642 = distinct !DILexicalBlock(scope: !640, file: !574, line: 284, column: 5)
!643 = !DILocation(line: 284, column: 9, scope: !642)
!644 = !DILocation(line: 281, column: 42, scope: !632)
!645 = !DILocation(line: 282, column: 28, scope: !632)
!646 = !DILocation(line: 282, column: 16, scope: !632)
!647 = !DILocation(line: 282, column: 9, scope: !638)
!648 = !DILocation(line: 283, column: 34, scope: !638)
!649 = !DILocation(line: 283, column: 17, scope: !638)
!650 = !DILocation(line: 283, column: 9, scope: !640)
!651 = !DILocation(line: 284, column: 18, scope: !640)
!652 = !DILocation(line: 285, column: 20, scope: !642)
!653 = !DILocation(line: 285, column: 5, scope: !642)
!654 = !DILocation(line: 286, column: 2, scope: !632)
!655 = distinct !DISubprogram(name: "leak<i32>", linkageName: "_ZN5alloc5boxed12Box$LT$T$GT$4leak17h04ded932ea566d9eE", scope: !657, file: !656, line: 549, type: !659, scopeLine: 549, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !197, retainedNodes: !662)
!656 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/liballoc/boxed.rs", directory: "", checksumkind: CSK_MD5, checksum: "e87bf360dc789016afebec0c76b5a74c")
!657 = !DINamespace(name: "{{impl}}", scope: !658)
!658 = !DINamespace(name: "boxed", scope: !576)
!659 = !DISubroutineType(types: !660)
!660 = !{!661, !345}
!661 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut i32", baseType: !116, size: 64, align: 64, dwarfAddressSpace: 0)
!662 = !{!663}
!663 = !DILocalVariable(name: "b", arg: 1, scope: !655, file: !656, line: 549, type: !345)
!664 = !DILocalVariable(name: "self", arg: 1, scope: !665, file: !666, line: 171, type: !673)
!665 = distinct !DISubprogram(name: "deref_mut<alloc::boxed::Box<i32>>", linkageName: "_ZN94_$LT$core..mem..manually_drop..ManuallyDrop$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17ha5cda359d3a96392E", scope: !667, file: !666, line: 171, type: !670, scopeLine: 171, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !348, retainedNodes: !677)
!666 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/mem/manually_drop.rs", directory: "", checksumkind: CSK_MD5, checksum: "760786ca2e5638f73e5d0905718a5b4f")
!667 = !DINamespace(name: "{{impl}}", scope: !668)
!668 = !DINamespace(name: "manually_drop", scope: !669)
!669 = !DINamespace(name: "mem", scope: !46)
!670 = !DISubroutineType(types: !671)
!671 = !{!672, !673}
!672 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut alloc::boxed::Box<i32>", baseType: !345, size: 64, align: 64, dwarfAddressSpace: 0)
!673 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::manually_drop::ManuallyDrop<alloc::boxed::Box<i32>>", baseType: !674, size: 64, align: 64, dwarfAddressSpace: 0)
!674 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<alloc::boxed::Box<i32>>", scope: !668, file: !2, size: 64, align: 64, elements: !675, templateParams: !348, identifier: "3e45df042ac60a1b6909144372c7d1e3")
!675 = !{!676}
!676 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !674, file: !2, baseType: !345, size: 64, align: 64)
!677 = !{!664}
!678 = !DILocation(line: 171, column: 18, scope: !665, inlinedAt: !679)
!679 = distinct !DILocation(line: 553, column: 24, scope: !655)
!680 = !DILocalVariable(name: "value", arg: 1, scope: !681, file: !666, line: 82, type: !345)
!681 = distinct !DISubprogram(name: "new<alloc::boxed::Box<i32>>", linkageName: "_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$3new17h1f53059bb4ad0abaE", scope: !674, file: !666, line: 82, type: !682, scopeLine: 82, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !348, retainedNodes: !684)
!682 = !DISubroutineType(types: !683)
!683 = !{!674, !345}
!684 = !{!680}
!685 = !DILocation(line: 82, column: 22, scope: !681, inlinedAt: !686)
!686 = distinct !DILocation(line: 553, column: 24, scope: !655)
!687 = !DILocation(line: 549, column: 21, scope: !655)
!688 = !DILocation(line: 553, column: 24, scope: !655)
!689 = !{!690}
!690 = distinct !{!690, !691, !"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$3new17h1f53059bb4ad0abaE: %value"}
!691 = distinct !{!691, !"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$3new17h1f53059bb4ad0abaE"}
!692 = !DILocation(line: 83, column: 9, scope: !681, inlinedAt: !686)
!693 = !DILocation(line: 84, column: 6, scope: !681, inlinedAt: !686)
!694 = !DILocation(line: 173, column: 6, scope: !665, inlinedAt: !679)
!695 = !DILocation(line: 554, column: 5, scope: !655)
!696 = !DILocation(line: 554, column: 6, scope: !655)
!697 = distinct !DISubprogram(name: "into_raw<i32>", linkageName: "_ZN5alloc5boxed12Box$LT$T$GT$8into_raw17h9bfedc35f7b96439E", scope: !657, file: !656, line: 441, type: !698, scopeLine: 441, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !197, retainedNodes: !700)
!698 = !DISubroutineType(types: !699)
!699 = !{!388, !345}
!700 = !{!701}
!701 = !DILocalVariable(name: "b", arg: 1, scope: !697, file: !656, line: 441, type: !345)
!702 = !DILocation(line: 441, column: 21, scope: !697)
!703 = !DILocation(line: 447, column: 9, scope: !697)
!704 = !DILocation(line: 448, column: 6, scope: !697)
!705 = distinct !DISubprogram(name: "alloc", linkageName: "_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$5alloc17h37fa2cc98116af8dE", scope: !706, file: !574, line: 167, type: !707, scopeLine: 167, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !725)
!706 = !DINamespace(name: "{{impl}}", scope: !575)
!707 = !DISubroutineType(types: !708)
!708 = !{!709, !723, !464, !60}
!709 = !DICompositeType(tag: DW_TAG_structure_type, name: "Result<core::alloc::MemoryBlock, core::alloc::AllocErr>", scope: !45, file: !2, size: 128, align: 64, elements: !710, identifier: "c94b74d3ed8b6f4d9f13985e21f13d4e")
!710 = !{!711}
!711 = !DICompositeType(tag: DW_TAG_variant_part, scope: !45, file: !2, size: 128, align: 64, elements: !712, templateParams: !717, identifier: "c94b74d3ed8b6f4d9f13985e21f13d4e_variant_part", discriminator: !522)
!712 = !{!713, !719}
!713 = !DIDerivedType(tag: DW_TAG_member, name: "Ok", scope: !711, file: !2, baseType: !714, size: 128, align: 64)
!714 = !DICompositeType(tag: DW_TAG_structure_type, name: "Ok", scope: !709, file: !2, size: 128, align: 64, elements: !715, templateParams: !717, identifier: "c94b74d3ed8b6f4d9f13985e21f13d4e::Ok")
!715 = !{!716}
!716 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !714, file: !2, baseType: !596, size: 128, align: 64)
!717 = !{!718, !516}
!718 = !DITemplateTypeParameter(name: "T", type: !596)
!719 = !DIDerivedType(tag: DW_TAG_member, name: "Err", scope: !711, file: !2, baseType: !720, size: 128, align: 64, extraData: i64 0)
!720 = !DICompositeType(tag: DW_TAG_structure_type, name: "Err", scope: !709, file: !2, size: 128, align: 64, elements: !721, templateParams: !717, identifier: "c94b74d3ed8b6f4d9f13985e21f13d4e::Err")
!721 = !{!722}
!722 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !720, file: !2, baseType: !517, align: 8)
!723 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut alloc::alloc::Global", baseType: !724, size: 64, align: 64, dwarfAddressSpace: 0)
!724 = !DICompositeType(tag: DW_TAG_structure_type, name: "Global", scope: !575, file: !2, align: 8, elements: !4, templateParams: !4, identifier: "62a32891ac4de522f1953b43fb9c61cb")
!725 = !{!726, !727, !728, !729, !731, !733, !735, !737}
!726 = !DILocalVariable(name: "self", arg: 1, scope: !705, file: !574, line: 167, type: !723)
!727 = !DILocalVariable(name: "layout", arg: 2, scope: !705, file: !574, line: 167, type: !464)
!728 = !DILocalVariable(name: "init", arg: 3, scope: !705, file: !574, line: 167, type: !60)
!729 = !DILocalVariable(name: "size", scope: !730, file: !574, line: 169, type: !170, align: 8)
!730 = distinct !DILexicalBlock(scope: !705, file: !574, line: 169, column: 13)
!731 = !DILocalVariable(name: "raw_ptr", scope: !732, file: !574, line: 173, type: !182, align: 8)
!732 = distinct !DILexicalBlock(scope: !730, file: !574, line: 173, column: 17)
!733 = !DILocalVariable(name: "ptr", scope: !734, file: !574, line: 177, type: !73, align: 8)
!734 = distinct !DILexicalBlock(scope: !732, file: !574, line: 177, column: 17)
!735 = !DILocalVariable(name: "err", scope: !736, file: !574, line: 177, type: !517, align: 1)
!736 = distinct !DILexicalBlock(scope: !732, file: !574, line: 177, column: 64)
!737 = !DILocalVariable(name: "val", scope: !738, file: !574, line: 177, type: !73, align: 8)
!738 = distinct !DILexicalBlock(scope: !732, file: !574, line: 177, column: 27)
!739 = !DILocation(line: 167, column: 25, scope: !705)
!740 = !DILocation(line: 167, column: 14, scope: !705)
!741 = !DILocation(line: 167, column: 41, scope: !705)
!742 = !DILocation(line: 173, column: 21, scope: !732)
!743 = !DILocation(line: 177, column: 64, scope: !736)
!744 = !DILocation(line: 169, column: 24, scope: !705)
!745 = !DILocation(line: 169, column: 17, scope: !730)
!746 = !DILocation(line: 170, column: 16, scope: !730)
!747 = !DILocation(line: 170, column: 13, scope: !730)
!748 = !DILocation(line: 173, column: 21, scope: !730)
!749 = !DILocation(line: 174, column: 21, scope: !730)
!750 = !DILocation(line: 171, column: 20, scope: !730)
!751 = !DILocation(line: 171, column: 39, scope: !730)
!752 = !DILocation(line: 171, column: 17, scope: !730)
!753 = !DILocation(line: 171, column: 67, scope: !730)
!754 = !DILocation(line: 175, column: 55, scope: !730)
!755 = !DILocation(line: 175, column: 42, scope: !730)
!756 = !DILocation(line: 173, column: 37, scope: !730)
!757 = !DILocation(line: 174, column: 55, scope: !730)
!758 = !DILocation(line: 174, column: 49, scope: !730)
!759 = !DILocation(line: 173, column: 31, scope: !730)
!760 = !DILocation(line: 177, column: 27, scope: !732)
!761 = !DILocation(line: 177, column: 40, scope: !732)
!762 = !DILocation(line: 177, column: 64, scope: !732)
!763 = !DILocation(line: 177, column: 27, scope: !738)
!764 = !DILocation(line: 177, column: 21, scope: !734)
!765 = !DILocation(line: 177, column: 65, scope: !732)
!766 = !DILocation(line: 178, column: 20, scope: !734)
!767 = !DILocation(line: 178, column: 17, scope: !734)
!768 = !DILocation(line: 178, column: 45, scope: !734)
!769 = !DILocation(line: 179, column: 13, scope: !730)
!770 = !DILocation(line: 181, column: 6, scope: !705)
!771 = !DILocation(line: 177, column: 64, scope: !705)
!772 = distinct !DISubprogram(name: "dealloc", linkageName: "_ZN62_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$7dealloc17h03eb740b36c31772E", scope: !706, file: !574, line: 184, type: !773, scopeLine: 184, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !775)
!773 = !DISubroutineType(types: !774)
!774 = !{null, !723, !73, !464}
!775 = !{!776, !777, !778}
!776 = !DILocalVariable(name: "self", arg: 1, scope: !772, file: !574, line: 184, type: !723)
!777 = !DILocalVariable(name: "ptr", arg: 2, scope: !772, file: !574, line: 184, type: !73)
!778 = !DILocalVariable(name: "layout", arg: 3, scope: !772, file: !574, line: 184, type: !464)
!779 = !DILocation(line: 184, column: 52, scope: !772)
!780 = !DILocation(line: 184, column: 23, scope: !772)
!781 = !DILocation(line: 184, column: 34, scope: !772)
!782 = !DILocation(line: 185, column: 12, scope: !772)
!783 = !DILocation(line: 185, column: 9, scope: !772)
!784 = !DILocation(line: 186, column: 21, scope: !772)
!785 = !DILocation(line: 186, column: 35, scope: !772)
!786 = !DILocation(line: 186, column: 13, scope: !772)
!787 = !DILocation(line: 188, column: 6, scope: !772)
!788 = distinct !DISubprogram(name: "report", linkageName: "_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17h24744b84e9ac7fd6E", scope: !564, file: !563, line: 1701, type: !789, scopeLine: 1701, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !794)
!789 = !DISubroutineType(types: !790)
!790 = !{!116, !791}
!791 = !DICompositeType(tag: DW_TAG_structure_type, name: "ExitCode", scope: !565, file: !2, size: 8, align: 8, elements: !792, templateParams: !4, identifier: "9b5e6453961b0743a8ecfab92535235c")
!792 = !{!793}
!793 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !791, file: !2, baseType: !125, size: 8, align: 8)
!794 = !{!795}
!795 = !DILocalVariable(name: "self", arg: 1, scope: !788, file: !563, line: 1701, type: !791)
!796 = !DILocation(line: 1701, column: 15, scope: !788)
!797 = !DILocation(line: 1702, column: 9, scope: !788)
!798 = !DILocation(line: 1703, column: 6, scope: !788)
!799 = distinct !DISubprogram(name: "from_error<core::alloc::MemoryBlock,core::alloc::AllocErr>", linkageName: "_ZN73_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17hd511df3d9e5a4409E", scope: !801, file: !800, line: 1557, type: !802, scopeLine: 1557, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !717, retainedNodes: !804)
!800 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/result.rs", directory: "", checksumkind: CSK_MD5, checksum: "6bdeed70a3678de0dd25256a0a378602")
!801 = !DINamespace(name: "{{impl}}", scope: !45)
!802 = !DISubroutineType(types: !803)
!803 = !{!709, !517}
!804 = !{!805}
!805 = !DILocalVariable(name: "v", arg: 1, scope: !799, file: !800, line: 1557, type: !517)
!806 = !DILocation(line: 1557, column: 19, scope: !799)
!807 = !DILocation(line: 1558, column: 9, scope: !799)
!808 = !DILocation(line: 1559, column: 6, scope: !799)
!809 = distinct !DISubprogram(name: "into_result<core::ptr::non_null::NonNull<u8>,core::alloc::AllocErr>", linkageName: "_ZN73_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h19b933b92aaa401eE", scope: !801, file: !800, line: 1547, type: !810, scopeLine: 1547, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !515, retainedNodes: !812)
!810 = !DISubroutineType(types: !811)
!811 = !{!507, !507}
!812 = !{!813}
!813 = !DILocalVariable(name: "self", arg: 1, scope: !809, file: !800, line: 1547, type: !507)
!814 = !DILocation(line: 1547, column: 20, scope: !809)
!815 = !DILocation(line: 1549, column: 6, scope: !809)
!816 = distinct !DISubprogram(name: "test_local", linkageName: "_ZN4main10test_local17h6fce92d1a2065c63E", scope: !818, file: !817, line: 3, type: !819, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !821)
!817 = !DIFile(filename: "src/main.rs", directory: "/home/vagrant/proj/rust/mycode/rust_test", checksumkind: CSK_MD5, checksum: "9bb4ecbeedb1da0ef58d448c05cdcf2c")
!818 = !DINamespace(name: "main", scope: null)
!819 = !DISubroutineType(types: !820)
!820 = !{null, !116}
!821 = !{!822, !823, !825}
!822 = !DILocalVariable(name: "i", arg: 1, scope: !816, file: !817, line: 3, type: !116)
!823 = !DILocalVariable(name: "a", scope: !824, file: !817, line: 4, type: !116, align: 4)
!824 = distinct !DILexicalBlock(scope: !816, file: !817, line: 4, column: 2)
!825 = !DILocalVariable(name: "arg0", scope: !826, file: !817, line: 6, type: !190, align: 8)
!826 = !DILexicalBlockFile(scope: !827, file: !817, discriminator: 0)
!827 = distinct !DILexicalBlock(scope: !824, file: !828, line: 97, column: 28)
!828 = !DIFile(filename: "/home/vagrant/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/macros.rs", directory: "/home/vagrant/proj/rust/mycode/rust_test", checksumkind: CSK_MD5, checksum: "90a22a617c5a674ebac7f9ea2c05cd41")
!829 = !DILocation(line: 3, column: 15, scope: !816)
!830 = !DILocation(line: 4, column: 10, scope: !816)
!831 = !DILocation(line: 4, column: 6, scope: !824)
!832 = !DILocation(line: 6, column: 2, scope: !824)
!833 = !DILocation(line: 6, column: 11, scope: !824)
!834 = !DILocation(line: 6, column: 31, scope: !824)
!835 = !DILocation(line: 6, column: 2, scope: !826)
!836 = !DILocation(line: 7, column: 2, scope: !816)
!837 = distinct !DISubprogram(name: "test_array", linkageName: "_ZN4main10test_array17hc0675ced7869a5f4E", scope: !818, file: !817, line: 8, type: !838, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !840)
!838 = !DISubroutineType(types: !839)
!839 = !{null, !170}
!840 = !{!841, !842, !847, !849}
!841 = !DILocalVariable(name: "index", arg: 1, scope: !837, file: !817, line: 8, type: !170)
!842 = !DILocalVariable(name: "xs", scope: !843, file: !817, line: 9, type: !844, align: 4)
!843 = distinct !DILexicalBlock(scope: !837, file: !817, line: 9, column: 2)
!844 = !DICompositeType(tag: DW_TAG_array_type, baseType: !116, size: 32, align: 32, elements: !845)
!845 = !{!846}
!846 = !DISubrange(count: 1)
!847 = !DILocalVariable(name: "b", scope: !848, file: !817, line: 10, type: !116, align: 4)
!848 = distinct !DILexicalBlock(scope: !843, file: !817, line: 10, column: 2)
!849 = !DILocalVariable(name: "arg0", scope: !850, file: !817, line: 13, type: !190, align: 8)
!850 = !DILexicalBlockFile(scope: !851, file: !817, discriminator: 0)
!851 = distinct !DILexicalBlock(scope: !848, file: !828, line: 97, column: 28)
!852 = !DILocation(line: 9, column: 6, scope: !843)
!853 = !DILocation(line: 8, column: 15, scope: !837)
!854 = !DILocation(line: 10, column: 6, scope: !848)
!855 = !DILocation(line: 9, column: 6, scope: !837)
!856 = !DILocation(line: 9, column: 25, scope: !837)
!857 = !DILocation(line: 10, column: 6, scope: !843)
!858 = !DILocation(line: 10, column: 14, scope: !843)
!859 = !DILocation(line: 11, column: 2, scope: !848)
!860 = !DILocation(line: 12, column: 14, scope: !848)
!861 = !DILocation(line: 12, column: 2, scope: !848)
!862 = !DILocation(line: 13, column: 2, scope: !848)
!863 = !DILocation(line: 13, column: 11, scope: !848)
!864 = !DILocation(line: 13, column: 31, scope: !848)
!865 = !DILocation(line: 13, column: 2, scope: !850)
!866 = !DILocation(line: 14, column: 1, scope: !843)
!867 = !DILocation(line: 14, column: 1, scope: !837)
!868 = !DILocation(line: 14, column: 2, scope: !837)
!869 = distinct !DISubprogram(name: "test_box", linkageName: "_ZN4main8test_box17hded4a61e18da0747E", scope: !818, file: !817, line: 16, type: !819, scopeLine: 16, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !870)
!870 = !{!871, !872, !874, !876, !878}
!871 = !DILocalVariable(name: "i", arg: 1, scope: !869, file: !817, line: 16, type: !116)
!872 = !DILocalVariable(name: "five", scope: !873, file: !817, line: 17, type: !345, align: 8)
!873 = distinct !DILexicalBlock(scope: !869, file: !817, line: 17, column: 2)
!874 = !DILocalVariable(name: "six", scope: !875, file: !817, line: 18, type: !345, align: 8)
!875 = distinct !DILexicalBlock(scope: !873, file: !817, line: 18, column: 2)
!876 = !DILocalVariable(name: "p", scope: !877, file: !817, line: 19, type: !388, align: 8)
!877 = distinct !DILexicalBlock(scope: !875, file: !817, line: 19, column: 2)
!878 = !DILocalVariable(name: "arg0", scope: !879, file: !817, line: 26, type: !190, align: 8)
!879 = !DILexicalBlockFile(scope: !880, file: !817, discriminator: 0)
!880 = distinct !DILexicalBlock(scope: !877, file: !828, line: 97, column: 28)
!881 = !DILocalVariable(name: "x", arg: 1, scope: !882, file: !656, line: 174, type: !116)
!882 = distinct !DISubprogram(name: "new<i32>", linkageName: "_ZN5alloc5boxed12Box$LT$T$GT$3new17hb1321fc2690736cdE", scope: !657, file: !656, line: 174, type: !883, scopeLine: 174, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !197, retainedNodes: !885)
!883 = !DISubroutineType(types: !884)
!884 = !{!345, !116}
!885 = !{!881}
!886 = !DILocation(line: 174, column: 16, scope: !882, inlinedAt: !887)
!887 = distinct !DILocation(line: 18, column: 12, scope: !873)
!888 = !DILocation(line: 174, column: 16, scope: !882, inlinedAt: !889)
!889 = distinct !DILocation(line: 17, column: 13, scope: !869)
!890 = !DILocation(line: 18, column: 6, scope: !875)
!891 = !DILocation(line: 17, column: 6, scope: !873)
!892 = !DILocation(line: 16, column: 13, scope: !869)
!893 = !DILocation(line: 19, column: 6, scope: !877)
!894 = !DILocation(line: 17, column: 6, scope: !869)
!895 = !DILocation(line: 17, column: 13, scope: !869)
!896 = !DILocation(line: 175, column: 9, scope: !882, inlinedAt: !889)
!897 = !DILocation(line: 175, column: 13, scope: !882, inlinedAt: !889)
!898 = !DILocation(line: 176, column: 6, scope: !882, inlinedAt: !889)
!899 = !DILocation(line: 16, column: 1, scope: !869)
!900 = !DILocation(line: 18, column: 6, scope: !873)
!901 = !DILocation(line: 175, column: 9, scope: !882, inlinedAt: !887)
!902 = !DILocation(line: 175, column: 13, scope: !882, inlinedAt: !887)
!903 = !DILocation(line: 176, column: 6, scope: !882, inlinedAt: !887)
!904 = !DILocation(line: 18, column: 12, scope: !873)
!905 = !DILocation(line: 19, column: 6, scope: !875)
!906 = !DILocation(line: 20, column: 5, scope: !877)
!907 = !DILocation(line: 20, column: 2, scope: !877)
!908 = !DILocation(line: 23, column: 21, scope: !877)
!909 = !DILocation(line: 23, column: 7, scope: !877)
!910 = !DILocation(line: 21, column: 21, scope: !877)
!911 = !DILocation(line: 21, column: 7, scope: !877)
!912 = !DILocation(line: 21, column: 3, scope: !877)
!913 = !DILocation(line: 23, column: 3, scope: !877)
!914 = !DILocation(line: 26, column: 3, scope: !877)
!915 = !DILocation(line: 26, column: 12, scope: !877)
!916 = !DILocation(line: 26, column: 30, scope: !877)
!917 = !DILocation(line: 26, column: 3, scope: !879)
!918 = !DILocation(line: 28, column: 1, scope: !875)
!919 = !DILocation(line: 28, column: 1, scope: !873)
!920 = !DILocation(line: 28, column: 1, scope: !869)
!921 = !DILocation(line: 28, column: 2, scope: !869)
!922 = distinct !DISubprogram(name: "test_reference1", linkageName: "_ZN4main15test_reference117h35f46ec9768b443bE", scope: !818, file: !817, line: 29, type: !12, scopeLine: 29, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !923)
!923 = !{!924, !926}
!924 = !DILocalVariable(name: "five", scope: !925, file: !817, line: 30, type: !345, align: 8)
!925 = distinct !DILexicalBlock(scope: !922, file: !817, line: 30, column: 2)
!926 = !DILocalVariable(name: "arg0", scope: !927, file: !817, line: 32, type: !190, align: 8)
!927 = !DILexicalBlockFile(scope: !928, file: !817, discriminator: 0)
!928 = distinct !DILexicalBlock(scope: !925, file: !828, line: 97, column: 28)
!929 = !DILocation(line: 174, column: 16, scope: !882, inlinedAt: !930)
!930 = distinct !DILocation(line: 30, column: 13, scope: !922)
!931 = !DILocation(line: 30, column: 6, scope: !925)
!932 = !DILocation(line: 30, column: 6, scope: !922)
!933 = !DILocation(line: 175, column: 9, scope: !882, inlinedAt: !930)
!934 = !DILocation(line: 175, column: 13, scope: !882, inlinedAt: !930)
!935 = !DILocation(line: 176, column: 6, scope: !882, inlinedAt: !930)
!936 = !DILocation(line: 30, column: 13, scope: !922)
!937 = !DILocation(line: 29, column: 1, scope: !922)
!938 = !DILocation(line: 32, column: 2, scope: !925)
!939 = !DILocation(line: 32, column: 11, scope: !925)
!940 = !DILocation(line: 32, column: 36, scope: !925)
!941 = !DILocation(line: 32, column: 2, scope: !927)
!942 = !DILocation(line: 33, column: 1, scope: !922)
!943 = !DILocation(line: 33, column: 2, scope: !922)
!944 = distinct !DISubprogram(name: "test_reference2", linkageName: "_ZN4main15test_reference217h7a706991a462b563E", scope: !818, file: !817, line: 34, type: !945, scopeLine: 34, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !41, templateParams: !4, retainedNodes: !947)
!945 = !DISubroutineType(types: !946)
!946 = !{null, !190}
!947 = !{!948, !949}
!948 = !DILocalVariable(name: "p", arg: 1, scope: !944, file: !817, line: 34, type: !190)
!949 = !DILocalVariable(name: "arg0", scope: !950, file: !817, line: 35, type: !190, align: 8)
!950 = !DILexicalBlockFile(scope: !951, file: !817, discriminator: 0)
!951 = distinct !DILexicalBlock(scope: !944, file: !828, line: 97, column: 28)
!952 = !DILocation(line: 34, column: 20, scope: !944)
!953 = !DILocation(line: 35, column: 2, scope: !944)
!954 = !DILocation(line: 35, column: 11, scope: !944)
!955 = !DILocation(line: 35, column: 2, scope: !950)
!956 = !DILocation(line: 36, column: 2, scope: !944)
!957 = distinct !DISubprogram(name: "main", linkageName: "_ZN4main4main17h34dc8baaef7ad15dE", scope: !818, file: !817, line: 38, type: !12, scopeLine: 38, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagMainSubprogram, unit: !41, templateParams: !4, retainedNodes: !958)
!958 = !{!959}
!959 = !DILocalVariable(name: "six", scope: !960, file: !817, line: 43, type: !345, align: 8)
!960 = distinct !DILexicalBlock(scope: !957, file: !817, line: 43, column: 2)
!961 = !DILocation(line: 174, column: 16, scope: !882, inlinedAt: !962)
!962 = distinct !DILocation(line: 43, column: 12, scope: !957)
!963 = !DILocation(line: 43, column: 6, scope: !960)
!964 = !DILocation(line: 40, column: 5, scope: !957)
!965 = !DILocation(line: 38, column: 1, scope: !957)
!966 = !DILocation(line: 41, column: 5, scope: !957)
!967 = !DILocation(line: 42, column: 5, scope: !957)
!968 = !DILocation(line: 43, column: 6, scope: !957)
!969 = !DILocation(line: 175, column: 9, scope: !882, inlinedAt: !962)
!970 = !DILocation(line: 175, column: 13, scope: !882, inlinedAt: !962)
!971 = !DILocation(line: 176, column: 6, scope: !882, inlinedAt: !962)
!972 = !DILocation(line: 43, column: 12, scope: !957)
!973 = !DILocation(line: 44, column: 2, scope: !960)
!974 = !DILocation(line: 45, column: 21, scope: !960)
!975 = !DILocation(line: 45, column: 5, scope: !960)
!976 = !DILocation(line: 46, column: 1, scope: !957)
!977 = !DILocation(line: 46, column: 2, scope: !978)
!978 = !DILexicalBlockFile(scope: !957, file: !817, discriminator: 0)
